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 *,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

Generated on 31 Oct 2019 for MagickCore by  doxygen 1.6.1