]> granicus.if.org Git - imagemagick/blob - magick/blob-private.h
(no commit message)
[imagemagick] / magick / blob-private.h
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)
22 extern "C" {
23 #endif
24
25 #include "magick/image.h"
26 #include "magick/stream.h"
27
28 #define MagickMinBlobExtent  32767L
29 #define MagickSeek(file,offset,whence)  lseek(file,offset,whence)
30 #define MagickTell(file)  tell(file)
31
32 typedef enum
33 {
34   UndefinedBlobMode,
35   ReadBlobMode,
36   ReadBinaryBlobMode,
37   WriteBlobMode,
38   WriteBinaryBlobMode,
39   AppendBlobMode,
40   AppendBinaryBlobMode
41 } BlobMode;
42
43 typedef enum
44 {
45   UndefinedStream,
46   FileStream,
47   StandardStream,
48   PipeStream,
49   ZipStream,
50   BZipStream,
51   FifoStream,
52   BlobStream
53 } StreamType;
54
55 typedef int
56   *(*BlobFifo)(const Image *,const void *,const size_t);
57
58 extern MagickExport BlobInfo
59   *CloneBlobInfo(const BlobInfo *),
60   *ReferenceBlob(BlobInfo *);
61
62 extern MagickExport char
63   *ReadBlobString(Image *,char *);
64
65 extern MagickExport const struct stat
66   *GetBlobProperties(const Image *);
67
68 extern MagickExport double
69   ReadBlobDouble(Image *);
70
71 extern MagickExport float
72   ReadBlobFloat(Image *);
73
74 extern MagickExport int
75   EOFBlob(const Image *),
76   ReadBlobByte(Image *);
77
78 extern MagickExport  MagickBooleanType
79   CloseBlob(Image *),
80   DiscardBlobBytes(Image *,const size_t),
81   OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
82   SetBlobExtent(Image *,const MagickSizeType),
83   UnmapBlob(void *,const size_t);
84
85 extern MagickExport MagickOffsetType
86   SeekBlob(Image *,const MagickOffsetType,const int),
87   TellBlob(const Image *);
88
89 extern MagickExport MagickSizeType
90   ReadBlobLongLong(Image *),
91   ReadBlobMSBLongLong(Image *);
92
93 extern MagickExport ssize_t
94   ReadBlob(Image *,const size_t,unsigned char *),
95   WriteBlob(Image *,const size_t,const unsigned char *),
96   WriteBlobByte(Image *,const unsigned char),
97   WriteBlobFloat(Image *,const float),
98   WriteBlobLong(Image *,const unsigned int),
99   WriteBlobShort(Image *,const unsigned short),
100   WriteBlobLSBLong(Image *,const unsigned int),
101   WriteBlobLSBShort(Image *,const unsigned short),
102   WriteBlobMSBLong(Image *,const unsigned int),
103   WriteBlobMSBLongLong(Image *,const MagickSizeType),
104   WriteBlobMSBShort(Image *,const unsigned short),
105   WriteBlobString(Image *,const char *);
106
107 extern MagickExport unsigned char
108   *DetachBlob(BlobInfo *),
109   *MapBlob(int,const MapMode,const MagickOffsetType,const size_t);
110
111 extern MagickExport unsigned int
112   ReadBlobLong(Image *),
113   ReadBlobLSBLong(Image *),
114   ReadBlobMSBLong(Image *);
115
116 extern MagickExport unsigned short
117   ReadBlobShort(Image *),
118   ReadBlobLSBShort(Image *),
119   ReadBlobMSBShort(Image *);
120
121 extern MagickExport void
122   AttachBlob(BlobInfo *,const void *,const size_t),
123   GetBlobInfo(BlobInfo *),
124   MSBOrderLong(unsigned char *,const size_t),
125   MSBOrderShort(unsigned char *,const size_t);
126
127 #if defined(__cplusplus) || defined(c_plusplus)
128 }
129 #endif
130
131 #endif