6459045
/*
6459045
  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
6459045
  dedicated to making software imaging solutions freely available.
6459045
  
6459045
  You may not use this file except in compliance with the License.  You may
6459045
  obtain a copy of the License at
6459045
  
6459045
    https://imagemagick.org/script/license.php
6459045
  
6459045
  Unless required by applicable law or agreed to in writing, software
6459045
  distributed under the License is distributed on an "AS IS" BASIS,
6459045
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6459045
  See the License for the specific language governing permissions and
6459045
  limitations under the License.
6459045
6459045
  MagickCore delegates methods.
6459045
*/
6459045
#ifndef MAGICKCORE_DELEGATE_H
6459045
#define MAGICKCORE_DELEGATE_H
6459045
6459045
#if defined(__cplusplus) || defined(c_plusplus)
6459045
extern "C" {
6459045
#endif
6459045
6459045
#include <stdarg.h>
6459045
#include "magick/semaphore.h"
6459045
6459045
typedef struct _DelegateInfo
6459045
{
6459045
  char
6459045
    *path,
6459045
    *decode,
6459045
    *encode,
6459045
    *commands;
6459045
6459045
  ssize_t
6459045
    mode;
6459045
6459045
  MagickBooleanType
6459045
    thread_support,
6459045
    spawn,
6459045
    stealth;
6459045
6459045
  struct _DelegateInfo
6459045
    *previous,
6459045
    *next;  /* deprecated, use GetDelegateInfoList() */
6459045
6459045
  size_t
6459045
    signature;
6459045
6459045
  SemaphoreInfo
6459045
    *semaphore;
6459045
} DelegateInfo;
6459045
6459045
extern MagickExport char
6459045
  *GetDelegateCommand(const ImageInfo *,Image *,const char *,const char *,
6459045
    ExceptionInfo *),
6459045
  **GetDelegateList(const char *,size_t *,ExceptionInfo *);
6459045
6459045
extern MagickExport const char
6459045
  *GetDelegateCommands(const DelegateInfo *);
6459045
6459045
extern MagickExport const DelegateInfo
6459045
  *GetDelegateInfo(const char *,const char *,ExceptionInfo *exception),
6459045
  **GetDelegateInfoList(const char *,size_t *,ExceptionInfo *);
6459045
6459045
extern MagickExport int
6459045
  ExternalDelegateCommand(const MagickBooleanType,const MagickBooleanType,
6459045
    const char *,char *,ExceptionInfo *);
6459045
6459045
extern MagickExport ssize_t
6459045
  GetDelegateMode(const DelegateInfo *);
6459045
6459045
extern MagickExport MagickBooleanType
6459045
  DelegateComponentGenesis(void),
6459045
  GetDelegateThreadSupport(const DelegateInfo *),
6459045
  InvokeDelegate(ImageInfo *,Image *,const char *,const char *,ExceptionInfo *),
6459045
  ListDelegateInfo(FILE *,ExceptionInfo *);
6459045
6459045
extern MagickExport void
6459045
  DelegateComponentTerminus(void);
6459045
6459045
#if defined(__cplusplus) || defined(c_plusplus)
6459045
}
6459045
#endif
6459045
6459045
#endif