# delegate.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 delegates methods.
    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 #if defined(MAGICKCORE_GS_DELEGATE)
    00026 #include "ghostscript/iapi.h"
    00027 #include "ghostscript/ierrors.h"
    00028 #endif
    00029
    00030 #ifndef gs_main_instance_DEFINED
    00031 # define gs_main_instance_DEFINED
    00032 typedef struct gs_main_instance_s gs_main_instance;
    00033 #endif
    00034
    00035 #if !defined(MagickDLLCall)
    00036 #  if defined(__WINDOWS__)
    00037 #    define MagickDLLCall __stdcall
    00038 #  else
    00039 #    define MagickDLLCall
    00040 #  endif
    00041 #endif
    00042
    00043 typedef struct _GhostscriptVectors
    00044 {
    00045   int
    00046     (MagickDLLCall *exit)(gs_main_instance *);
    00047
    00048   int
    00049     (MagickDLLCall *init_with_args)(gs_main_instance *,int,char **);
    00050
    00051   int
    00052     (MagickDLLCall *new_instance)(gs_main_instance **,void *);
    00053
    00054   int
    00055     (MagickDLLCall *run_string)(gs_main_instance *,const char *,int,int *);
    00056
    00057   void
    00058     (MagickDLLCall *delete_instance)(gs_main_instance *);
    00059 } GhostscriptVectors;
    00060
    00061 typedef struct _DelegateInfo
    00062 {
    00063   char
    00064     *path,
    00065     *decode,
    00066     *encode,
    00067     *commands;
    00068
    00069   long
    00070     mode;
    00071
    00072   MagickBooleanType
    00073     thread_support,
    00074     spawn,
    00075     stealth;
    00076
    00077   struct _DelegateInfo
    00078     *previous,
    00079     *next;  /* deprecated, use GetDelegateInfoList() */
    00080
    00081   unsigned long
    00082     signature;
    00083 } DelegateInfo;
    00084
    00085 extern MagickExport char
    00086   *GetDelegateCommand(const ImageInfo *,Image *,const char *,const char *,
    00087     ExceptionInfo *),
    00088   **GetDelegateList(const char *,unsigned long *,ExceptionInfo *);
    00089
    00090 extern MagickExport const char
    00091   *GetDelegateCommands(const DelegateInfo *);
    00092
    00093 extern MagickExport const DelegateInfo
    00094   *GetDelegateInfo(const char *,const char *,ExceptionInfo *exception),
    00095   **GetDelegateInfoList(const char *,unsigned long *,ExceptionInfo *);
    00096
    00097 extern MagickExport long
    00098   GetDelegateMode(const DelegateInfo *);
    00099
    00100 extern MagickExport MagickBooleanType
    00101   GetDelegateThreadSupport(const DelegateInfo *),
    00102   InvokeDelegate(ImageInfo *,Image *,const char *,const char *,ExceptionInfo *),
    00103   ListDelegateInfo(FILE *,ExceptionInfo *);
    00104
    00105 extern MagickExport void
    00106   DestroyDelegateList(void);
    00107
    00108 #if defined(__cplusplus) || defined(c_plusplus)
    00109 }
    00110 #endif
    00111
    00112 #endif