blob-private.h revision c9ca77c86e4d320c507e727896531924995ebb3b
1/* 2 Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization 3 dedicated to making software imaging solutions freely available. 4 5 You may not use this file except in compliance with the License. 6 obtain a copy of the License at 7 8 http://www.imagemagick.org/script/license.php 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 16 MagickCore Binary Large OBjects private methods. 17*/ 18#ifndef _MAGICKCORE_BLOB_PRIVATE_H 19#define _MAGICKCORE_BLOB_PRIVATE_H 20 21#include "MagickCore/image.h" 22#include "MagickCore/stream.h" 23#include "MagickCore/nt-base-private.h" 24 25#if defined(__cplusplus) || defined(c_plusplus) 26extern "C" { 27#endif 28 29#define MagickMinBlobExtent 32767L 30#if defined(MAGICKCORE_HAVE_FSEEKO) 31# define fseek fseeko 32# define ftell ftello 33#endif 34 35typedef enum 36{ 37 UndefinedBlobMode, 38 ReadBlobMode, 39 ReadBinaryBlobMode, 40 WriteBlobMode, 41 WriteBinaryBlobMode, 42 AppendBlobMode, 43 AppendBinaryBlobMode 44} BlobMode; 45 46typedef enum 47{ 48 UndefinedStream, 49 FileStream, 50 StandardStream, 51 PipeStream, 52 ZipStream, 53 BZipStream, 54 FifoStream, 55 BlobStream 56} StreamType; 57 58typedef int 59 *(*BlobFifo)(const Image *,const void *,const size_t); 60 61extern MagickExport BlobInfo 62 *CloneBlobInfo(const BlobInfo *), 63 *ReferenceBlob(BlobInfo *); 64 65extern MagickExport char 66 *ReadBlobString(Image *,char *); 67 68extern MagickExport const struct stat 69 *GetBlobProperties(const Image *); 70 71extern MagickExport const void 72 *ReadBlobStream(Image *,const size_t,void *,ssize_t *); 73 74extern MagickExport double 75 ReadBlobDouble(Image *); 76 77extern MagickExport float 78 ReadBlobFloat(Image *); 79 80extern MagickExport int 81 EOFBlob(const Image *), 82 ReadBlobByte(Image *); 83 84extern MagickExport MagickBooleanType 85 CloseBlob(Image *), 86 DiscardBlobBytes(Image *,const MagickSizeType), 87 OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *), 88 SetBlobExtent(Image *,const MagickSizeType), 89 UnmapBlob(void *,const size_t); 90 91extern MagickExport MagickOffsetType 92 SeekBlob(Image *,const MagickOffsetType,const int), 93 TellBlob(const Image *); 94 95extern MagickExport MagickSizeType 96 ReadBlobLongLong(Image *), 97 ReadBlobMSBLongLong(Image *); 98 99extern MagickExport ssize_t 100 ReadBlob(Image *,const size_t,void *), 101 WriteBlob(Image *,const size_t,const void *), 102 WriteBlobByte(Image *,const unsigned char), 103 WriteBlobFloat(Image *,const float), 104 WriteBlobLong(Image *,const unsigned int), 105 WriteBlobShort(Image *,const unsigned short), 106 WriteBlobLSBLong(Image *,const unsigned int), 107 WriteBlobLSBShort(Image *,const unsigned short), 108 WriteBlobMSBLong(Image *,const unsigned int), 109 WriteBlobMSBLongLong(Image *,const MagickSizeType), 110 WriteBlobMSBShort(Image *,const unsigned short), 111 WriteBlobString(Image *,const char *); 112 113extern MagickExport unsigned int 114 ReadBlobLong(Image *), 115 ReadBlobLSBLong(Image *), 116 ReadBlobMSBLong(Image *); 117 118extern MagickExport unsigned short 119 ReadBlobShort(Image *), 120 ReadBlobLSBShort(Image *), 121 ReadBlobMSBShort(Image *); 122 123extern MagickExport void 124 AttachBlob(BlobInfo *,const void *,const size_t), 125 *DetachBlob(BlobInfo *), 126 DisassociateBlob(Image *), 127 GetBlobInfo(BlobInfo *), 128 *MapBlob(int,const MapMode,const MagickOffsetType,const size_t), 129 MSBOrderLong(unsigned char *,const size_t), 130 MSBOrderShort(unsigned char *,const size_t); 131 132#if defined(__cplusplus) || defined(c_plusplus) 133} 134#endif 135 136#endif 137