blob-private.h

Go to the documentation of this file.
00001 /*
00002   Copyright 1999-2020 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 *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

Generated on 15 Jun 2020 for MagickCore by  doxygen 1.6.1