00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MAGICKCORE_BLOB_PRIVATE_H
00019 #define MAGICKCORE_BLOB_PRIVATE_H
00020
00021 #include "magick/image.h"
00022 #include "magick/stream.h"
00023 #include "magick/nt-base-private.h"
00024
00025 #if defined(__cplusplus) || defined(c_plusplus)
00026 extern "C" {
00027 #endif
00028
00029 #define MagickMinBlobExtent 32767L
00030 #if defined(MAGICKCORE_HAVE_FSEEKO)
00031 # define fseek fseeko
00032 # define ftell ftello
00033 #endif
00034
00035 typedef enum
00036 {
00037 UndefinedBlobMode,
00038 ReadBlobMode,
00039 ReadBinaryBlobMode,
00040 WriteBlobMode,
00041 WriteBinaryBlobMode,
00042 AppendBlobMode,
00043 AppendBinaryBlobMode
00044 } BlobMode;
00045
00046 typedef enum
00047 {
00048 UndefinedStream,
00049 FileStream,
00050 StandardStream,
00051 PipeStream,
00052 ZipStream,
00053 BZipStream,
00054 FifoStream,
00055 BlobStream
00056 } StreamType;
00057
00058 typedef int
00059 *(*BlobFifo)(const Image *,const void *,const size_t);
00060
00061 extern MagickExport BlobInfo
00062 *CloneBlobInfo(const BlobInfo *),
00063 *ReferenceBlob(BlobInfo *);
00064
00065 extern MagickExport char
00066 *ReadBlobString(Image *,char *);
00067
00068 extern MagickExport const struct stat
00069 *GetBlobProperties(const Image *);
00070
00071 extern MagickExport const void
00072 *ReadBlobStream(Image *,const size_t,void *magick_restrict,ssize_t *)
00073 magick_hot_spot;
00074
00075 extern MagickExport double
00076 ReadBlobDouble(Image *);
00077
00078 extern MagickExport float
00079 ReadBlobFloat(Image *);
00080
00081 extern MagickExport int
00082 EOFBlob(const Image *),
00083 ErrorBlob(const Image *),
00084 ReadBlobByte(Image *);
00085
00086 extern MagickExport MagickBooleanType
00087 CloseBlob(Image *),
00088 DiscardBlobBytes(Image *,const MagickSizeType),
00089 OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
00090 SetBlobExtent(Image *,const MagickSizeType),
00091 UnmapBlob(void *,const size_t);
00092
00093 extern MagickExport MagickOffsetType
00094 SeekBlob(Image *,const MagickOffsetType,const int),
00095 TellBlob(const Image *);
00096
00097 extern MagickExport MagickSizeType
00098 ReadBlobLongLong(Image *),
00099 ReadBlobMSBLongLong(Image *);
00100
00101 extern MagickExport signed int
00102 ReadBlobLSBSignedLong(Image *),
00103 ReadBlobMSBSignedLong(Image *),
00104 ReadBlobSignedLong(Image *);
00105
00106 extern MagickExport signed short
00107 ReadBlobLSBSignedShort(Image *),
00108 ReadBlobMSBSignedShort(Image *),
00109 ReadBlobSignedShort(Image *);
00110
00111 extern MagickExport ssize_t
00112 ReadBlob(Image *,const size_t,unsigned char *),
00113 WriteBlob(Image *,const size_t,const unsigned char *),
00114 WriteBlobByte(Image *,const unsigned char),
00115 WriteBlobFloat(Image *,const float),
00116 WriteBlobLong(Image *,const unsigned int),
00117 WriteBlobShort(Image *,const unsigned short),
00118 WriteBlobLSBLong(Image *,const unsigned int),
00119 WriteBlobLSBShort(Image *,const unsigned short),
00120 WriteBlobLSBSignedLong(Image *,const signed int),
00121 WriteBlobLSBSignedShort(Image *,const signed short),
00122 WriteBlobMSBLong(Image *,const unsigned int),
00123 WriteBlobMSBLongLong(Image *,const MagickSizeType),
00124 WriteBlobMSBShort(Image *,const unsigned short),
00125 WriteBlobMSBSignedLong(Image *,const signed int),
00126 WriteBlobMSBSignedShort(Image *,const signed short),
00127 WriteBlobString(Image *,const char *);
00128
00129 extern MagickExport unsigned char
00130 *DetachBlob(BlobInfo *),
00131 *MapBlob(int,const MapMode,const MagickOffsetType,const size_t);
00132
00133 extern MagickExport unsigned int
00134 ReadBlobLong(Image *),
00135 ReadBlobLSBLong(Image *),
00136 ReadBlobMSBLong(Image *);
00137
00138 extern MagickExport unsigned short
00139 ReadBlobShort(Image *),
00140 ReadBlobLSBShort(Image *),
00141 ReadBlobMSBShort(Image *);
00142
00143 extern MagickExport void
00144 AttachBlob(BlobInfo *,const void *,const size_t),
00145 GetBlobInfo(BlobInfo *),
00146 MSBOrderLong(unsigned char *,const size_t),
00147 MSBOrderShort(unsigned char *,const size_t);
00148
00149 extern MagickPrivate void
00150 DisassociateBlob(Image *);
00151
00152 #if defined(__cplusplus) || defined(c_plusplus)
00153 }
00154 #endif
00155
00156 #endif