blob-private.h

Go to the documentation of this file.
00001 /*
00002   Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
00003   dedicated to making software imaging solutions freely available.
00004   
00005   You may not use this file except in compliance with the License.  You may
00006   obtain a copy of the License at
00007   
00008     https://imagemagick.org/script/license.php
00009   
00010   Unless required by applicable law or agreed to in writing, software
00011   distributed under the License is distributed on an "AS IS" BASIS,
00012   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013   See the License for the specific language governing permissions and
00014   limitations under the License.
00015 
00016   MagickCore Binary Large OBjects private methods.
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

Generated on 16 Nov 2019 for MagickCore by  doxygen 1.6.1