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