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 "MagickCore/image.h"
00022 #include "MagickCore/stream.h"
00023 #include "MagickCore/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 CustomStream
00057 } StreamType;
00058
00059 extern MagickExport BlobInfo
00060 *CloneBlobInfo(const BlobInfo *),
00061 *ReferenceBlob(BlobInfo *);
00062
00063 extern MagickExport char
00064 *ReadBlobString(Image *,char *);
00065
00066 extern MagickExport const struct stat
00067 *GetBlobProperties(const Image *);
00068
00069 extern MagickExport const void
00070 *ReadBlobStream(Image *,const size_t,void *,ssize_t *);
00071
00072 extern MagickExport double
00073 ReadBlobDouble(Image *);
00074
00075 extern MagickExport float
00076 ReadBlobFloat(Image *);
00077
00078 extern MagickExport int
00079 EOFBlob(const Image *),
00080 ErrorBlob(const Image *),
00081 ReadBlobByte(Image *);
00082
00083 extern MagickExport MagickBooleanType
00084 CloseBlob(Image *),
00085 DiscardBlobBytes(Image *,const MagickSizeType),
00086 OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
00087 SetBlobExtent(Image *,const MagickSizeType),
00088 UnmapBlob(void *,const size_t);
00089
00090 extern MagickExport MagickOffsetType
00091 SeekBlob(Image *,const MagickOffsetType,const int),
00092 TellBlob(const Image *);
00093
00094 extern MagickExport MagickSizeType
00095 ReadBlobLongLong(Image *),
00096 ReadBlobMSBLongLong(Image *);
00097
00098 extern MagickExport signed int
00099 ReadBlobLSBSignedLong(Image *),
00100 ReadBlobMSBSignedLong(Image *),
00101 ReadBlobSignedLong(Image *);
00102
00103 extern MagickExport signed short
00104 ReadBlobLSBSignedShort(Image *),
00105 ReadBlobMSBSignedShort(Image *),
00106 ReadBlobSignedShort(Image *);
00107
00108 extern MagickExport ssize_t
00109 ReadBlob(Image *,const size_t,void *),
00110 WriteBlob(Image *,const size_t,const void *),
00111 WriteBlobByte(Image *,const unsigned char),
00112 WriteBlobFloat(Image *,const float),
00113 WriteBlobLong(Image *,const unsigned int),
00114 WriteBlobLongLong(Image *,const MagickSizeType),
00115 WriteBlobShort(Image *,const unsigned short),
00116 WriteBlobSignedLong(Image *,const signed int),
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 WriteBlobMSBShort(Image *,const unsigned short),
00123 WriteBlobMSBSignedShort(Image *,const signed short),
00124 WriteBlobString(Image *,const char *);
00125
00126 extern MagickExport unsigned int
00127 ReadBlobLong(Image *),
00128 ReadBlobLSBLong(Image *),
00129 ReadBlobMSBLong(Image *);
00130
00131 extern MagickExport unsigned short
00132 ReadBlobShort(Image *),
00133 ReadBlobLSBShort(Image *),
00134 ReadBlobMSBShort(Image *);
00135
00136 extern MagickExport void
00137 AttachBlob(BlobInfo *,const void *,const size_t),
00138 AttachCustomStream(BlobInfo *,CustomStreamInfo *),
00139 *DetachBlob(BlobInfo *),
00140 DisassociateBlob(Image *),
00141 GetBlobInfo(BlobInfo *),
00142 *MapBlob(int,const MapMode,const MagickOffsetType,const size_t),
00143 MSBOrderLong(unsigned char *,const size_t),
00144 MSBOrderShort(unsigned char *,const size_t);
00145
00146 #if defined(__cplusplus) || defined(c_plusplus)
00147 }
00148 #endif
00149
00150 #endif