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 "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

Generated on 18 Nov 2019 for MagickCore by  doxygen 1.6.1