blob-private.h revision 4c08aed51c5899665ade97263692328eea4af106
1/* 2 Copyright 1999-2011 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#if defined(__cplusplus) || defined(c_plusplus) 22extern "C" { 23#endif 24 25#include "MagickCore/image.h" 26#include "MagickCore/stream.h" 27 28#define MagickMinBlobExtent 32767L 29#if defined(MAGICKCORE_HAVE_FSEEKO) 30# define fseek fseeko 31# define ftell ftello 32#endif 33 34typedef enum 35{ 36 UndefinedBlobMode, 37 ReadBlobMode, 38 ReadBinaryBlobMode, 39 WriteBlobMode, 40 WriteBinaryBlobMode, 41 AppendBlobMode, 42 AppendBinaryBlobMode 43} BlobMode; 44 45typedef enum 46{ 47 UndefinedStream, 48 FileStream, 49 StandardStream, 50 PipeStream, 51 ZipStream, 52 BZipStream, 53 FifoStream, 54 BlobStream 55} StreamType; 56 57typedef int 58 *(*BlobFifo)(const Image *,const void *,const size_t); 59 60extern MagickExport BlobInfo 61 *CloneBlobInfo(const BlobInfo *), 62 *ReferenceBlob(BlobInfo *); 63 64extern MagickExport char 65 *ReadBlobString(Image *,char *); 66 67extern MagickExport const struct stat 68 *GetBlobProperties(const Image *); 69 70extern MagickExport double 71 ReadBlobDouble(Image *); 72 73extern MagickExport float 74 ReadBlobFloat(Image *); 75 76extern MagickExport int 77 EOFBlob(const Image *), 78 ReadBlobByte(Image *); 79 80extern MagickExport MagickBooleanType 81 CloseBlob(Image *), 82 DiscardBlobBytes(Image *,const MagickSizeType), 83 OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *), 84 SetBlobExtent(Image *,const MagickSizeType), 85 UnmapBlob(void *,const size_t); 86 87extern MagickExport MagickOffsetType 88 SeekBlob(Image *,const MagickOffsetType,const int), 89 TellBlob(const Image *); 90 91extern MagickExport MagickSizeType 92 ReadBlobLongLong(Image *), 93 ReadBlobMSBLongLong(Image *); 94 95extern MagickExport ssize_t 96 ReadBlob(Image *,const size_t,unsigned char *), 97 WriteBlob(Image *,const size_t,const unsigned char *), 98 WriteBlobByte(Image *,const unsigned char), 99 WriteBlobFloat(Image *,const float), 100 WriteBlobLong(Image *,const unsigned int), 101 WriteBlobShort(Image *,const unsigned short), 102 WriteBlobLSBLong(Image *,const unsigned int), 103 WriteBlobLSBShort(Image *,const unsigned short), 104 WriteBlobMSBLong(Image *,const unsigned int), 105 WriteBlobMSBLongLong(Image *,const MagickSizeType), 106 WriteBlobMSBShort(Image *,const unsigned short), 107 WriteBlobString(Image *,const char *); 108 109extern MagickExport unsigned char 110 *DetachBlob(BlobInfo *), 111 *MapBlob(int,const MapMode,const MagickOffsetType,const size_t); 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 GetBlobInfo(BlobInfo *), 126 MSBOrderLong(unsigned char *,const size_t), 127 MSBOrderShort(unsigned char *,const size_t); 128 129#if defined(__cplusplus) || defined(c_plusplus) 130} 131#endif 132 133#endif 134