00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MAGICKCORE_DELEGATE_H
00019 #define MAGICKCORE_DELEGATE_H
00020
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024
00025 #include <stdarg.h>
00026 #include "magick/semaphore.h"
00027
00028 typedef struct _DelegateInfo
00029 {
00030 char
00031 *path,
00032 *decode,
00033 *encode,
00034 *commands;
00035
00036 ssize_t
00037 mode;
00038
00039 MagickBooleanType
00040 thread_support,
00041 spawn,
00042 stealth;
00043
00044 struct _DelegateInfo
00045 *previous,
00046 *next;
00047
00048 size_t
00049 signature;
00050
00051 SemaphoreInfo
00052 *semaphore;
00053 } DelegateInfo;
00054
00055 extern MagickExport char
00056 *GetDelegateCommand(const ImageInfo *,Image *,const char *,const char *,
00057 ExceptionInfo *),
00058 **GetDelegateList(const char *,size_t *,ExceptionInfo *);
00059
00060 extern MagickExport const char
00061 *GetDelegateCommands(const DelegateInfo *);
00062
00063 extern MagickExport const DelegateInfo
00064 *GetDelegateInfo(const char *,const char *,ExceptionInfo *exception),
00065 **GetDelegateInfoList(const char *,size_t *,ExceptionInfo *);
00066
00067 extern MagickExport int
00068 ExternalDelegateCommand(const MagickBooleanType,const MagickBooleanType,
00069 const char *,char *,ExceptionInfo *);
00070
00071 extern MagickExport ssize_t
00072 GetDelegateMode(const DelegateInfo *);
00073
00074 extern MagickExport MagickBooleanType
00075 DelegateComponentGenesis(void),
00076 GetDelegateThreadSupport(const DelegateInfo *),
00077 InvokeDelegate(ImageInfo *,Image *,const char *,const char *,ExceptionInfo *),
00078 ListDelegateInfo(FILE *,ExceptionInfo *);
00079
00080 extern MagickExport void
00081 DelegateComponentTerminus(void);
00082
00083 #if defined(__cplusplus) || defined(c_plusplus)
00084 }
00085 #endif
00086
00087 #endif