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 *,ssize_t *);
00073
00074 extern MagickExport double
00075 ReadBlobDouble(Image *);
00076
00077 extern MagickExport float
00078 ReadBlobFloat(Image *);
00079
00080 extern MagickExport int
00081 EOFBlob(const Image *),
00082 ErrorBlob(const Image *),
00083 ReadBlobByte(Image *);
00084
00085 extern MagickExport MagickBooleanType
00086 CloseBlob(Image *),
00087 DiscardBlobBytes(Image *,const MagickSizeType),
00088 OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
00089 SetBlobExtent(Image *,const MagickSizeType),
00090 UnmapBlob(void *,const size_t);
00091
00092 extern MagickExport MagickOffsetType
00093 SeekBlob(Image *,const MagickOffsetType,const int),
00094 TellBlob(const Image *);
00095
00096 extern MagickExport MagickSizeType
00097 ReadBlobLongLong(Image *),
00098 ReadBlobMSBLongLong(Image *);
00099
00100 extern MagickExport signed int
00101 ReadBlobLSBSignedLong(Image *),
00102 ReadBlobMSBSignedLong(Image *),
00103 ReadBlobSignedLong(Image *);
00104
00105 extern MagickExport signed short
00106 ReadBlobLSBSignedShort(Image *),
00107 ReadBlobMSBSignedShort(Image *),
00108 ReadBlobSignedShort(Image *);
00109
00110 extern MagickExport ssize_t
00111 ReadBlob(Image *,const size_t,unsigned char *),
00112 WriteBlob(Image *,const size_t,const unsigned char *),
00113 WriteBlobByte(Image *,const unsigned char),
00114 WriteBlobFloat(Image *,const float),
00115 WriteBlobLong(Image *,const unsigned int),
00116 WriteBlobShort(Image *,const unsigned short),
00117 WriteBlobLSBLong(Image *,const unsigned int),
00118 WriteBlobLSBShort(Image *,const unsigned short),
00119 WriteBlobLSBSignedLong(Image *,const signed int),
00120 WriteBlobLSBSignedShort(Image *,const signed short),
00121 WriteBlobMSBLong(Image *,const unsigned int),
00122 WriteBlobMSBLongLong(Image *,const MagickSizeType),
00123 WriteBlobMSBShort(Image *,const unsigned short),
00124 WriteBlobMSBSignedLong(Image *,const signed int),
00125 WriteBlobMSBSignedShort(Image *,const signed short),
00126 WriteBlobString(Image *,const char *);
00127
00128 extern MagickExport unsigned char
00129 *DetachBlob(BlobInfo *),
00130 *MapBlob(int,const MapMode,const MagickOffsetType,const size_t);
00131
00132 extern MagickExport unsigned int
00133 ReadBlobLong(Image *),
00134 ReadBlobLSBLong(Image *),
00135 ReadBlobMSBLong(Image *);
00136
00137 extern MagickExport unsigned short
00138 ReadBlobShort(Image *),
00139 ReadBlobLSBShort(Image *),
00140 ReadBlobMSBShort(Image *);
00141
00142 extern MagickExport void
00143 AttachBlob(BlobInfo *,const void *,const size_t),
00144 GetBlobInfo(BlobInfo *),
00145 MSBOrderLong(unsigned char *,const size_t),
00146 MSBOrderShort(unsigned char *,const size_t);
00147
00148 extern MagickPrivate void
00149 DisassociateBlob(Image *);
00150
00151 #if defined(__cplusplus) || defined(c_plusplus)
00152 }
00153 #endif
00154
00155 #endif