# module.h

Go to the documentation of this file.

    00001 /*
    00002   Copyright 1999-2009 ImageMagick Studio LLC, a non-profit organization
    00003   dedicated to making software imaging solutions freely available.
    00004
    00005   You may not use this file except in compliance with the License.
    00006   obtain a copy of the License at
    00007
    00008     http://www.imagemagick.org/script/license.php
    00009
    00010   Unless required by applicable law or agreed to in writing, software
    00011   distributed under the License is distributed on an "AS IS" BASIS,
    00012   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00013   See the License for the specific language governing permissions and
    00014   limitations under the License.
    00015
    00016   MagickCore module methods.
    00017 */
    00018 #ifndef _MAGICKCORE_MODULE_H
    00019 #define _MAGICKCORE_MODULE_H
    00020
    00021 #if defined(__cplusplus) || defined(c_plusplus)
    00022 extern "C" {
    00023 #endif
    00024
    00025 #include <time.h>
    00026 #include "magick/version.h"
    00027
    00028 #define MagickImageCoderSignature  ((unsigned long) \
    00029   (((MagickLibVersion) << 8) | MAGICKCORE_QUANTUM_DEPTH))
    00030 #define MagickImageFilterSignature  ((unsigned long) \
    00031   (((MagickLibVersion) << 8) | MAGICKCORE_QUANTUM_DEPTH))
    00032
    00033 typedef enum
    00034 {
    00035   MagickImageCoderModule,
    00036   MagickImageFilterModule
    00037 } MagickModuleType;
    00038
    00039 typedef struct _ModuleInfo
    00040 {
    00041   char
    00042     *path,
    00043     *tag;
    00044
    00045   void
    00046     *handle,
    00047     (*unregister_module)(void);
    00048
    00049   unsigned long
    00050     (*register_module)(void);
    00051
    00052   time_t
    00053     load_time;
    00054
    00055   MagickBooleanType
    00056     stealth;
    00057
    00058   struct _ModuleInfo
    00059     *previous,
    00060     *next;  /* deprecated, use GetModuleInfoList() */
    00061
    00062   unsigned long
    00063     signature;
    00064 } ModuleInfo;
    00065
    00066 typedef ModuleExport unsigned long
    00067   ImageFilterHandler(Image **,const int,char **,ExceptionInfo *);
    00068
    00069 extern MagickExport char
    00070   **GetModuleList(const char *,unsigned long *,ExceptionInfo *);
    00071
    00072 extern MagickExport const ModuleInfo
    00073   *GetModuleInfo(const char *,ExceptionInfo *),
    00074   **GetModuleInfoList(const char *,unsigned long *,ExceptionInfo *);
    00075
    00076 extern MagickExport MagickBooleanType
    00077   InvokeDynamicImageFilter(const char *,Image **,const int,char **,
    00078     ExceptionInfo *),
    00079   InvokeStaticImageFilter(const char *,Image **,const int,char **,
    00080     ExceptionInfo *),
    00081   ListModuleInfo(FILE *,ExceptionInfo *),
    00082   OpenModule(const char *,ExceptionInfo *),
    00083   OpenModules(ExceptionInfo *);
    00084
    00085 extern MagickExport void
    00086   DestroyModuleList(void),
    00087   RegisterStaticModules(void),
    00088   UnregisterStaticModules(void);
    00089
    00090 #if defined(__cplusplus) || defined(c_plusplus)
    00091 }
    00092 #endif
    00093
    00094 #endif