MagickCore  6.9.12-67
Convert, Edit, Or Compose Bitmap Images
 All Data Structures
blob-private.h
1 /*
2  Copyright 1999-2021 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. You may
6  obtain a copy of the License at
7 
8  https://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 "magick/image.h"
22 #include "magick/stream.h"
23 #include "magick/nt-base-private.h"
24 
25 #if defined(__cplusplus) || defined(c_plusplus)
26 extern "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 
35 typedef enum
36 {
37  UndefinedBlobMode,
38  ReadBlobMode,
39  ReadBinaryBlobMode,
40  WriteBlobMode,
41  WriteBinaryBlobMode,
42  AppendBlobMode,
43  AppendBinaryBlobMode
44 } BlobMode;
45 
46 typedef enum
47 {
48  UndefinedStream,
49  FileStream,
50  StandardStream,
51  PipeStream,
52  ZipStream,
53  BZipStream,
54  FifoStream,
55  BlobStream
56 } StreamType;
57 
58 typedef int
59  *(*BlobFifo)(const Image *,const void *,const size_t);
60 
61 extern MagickExport BlobInfo
62  *CloneBlobInfo(const BlobInfo *),
63  *ReferenceBlob(BlobInfo *);
64 
65 extern MagickExport char
66  *ReadBlobString(Image *,char *);
67 
68 extern MagickExport const struct stat
69  *GetBlobProperties(const Image *);
70 
71 extern MagickExport const void
72  *ReadBlobStream(Image *,const size_t,void *magick_restrict,ssize_t *)
73  magick_hot_spot;
74 
75 extern MagickExport double
76  ReadBlobDouble(Image *);
77 
78 extern MagickExport float
79  ReadBlobFloat(Image *);
80 
81 extern MagickExport int
82  EOFBlob(const Image *),
83  ErrorBlob(const Image *),
84  ReadBlobByte(Image *);
85 
86 extern MagickExport MagickBooleanType
87  CloseBlob(Image *),
88  DiscardBlobBytes(Image *,const MagickSizeType),
89  OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
90  SetBlobExtent(Image *,const MagickSizeType),
91  UnmapBlob(void *,const size_t);
92 
93 extern MagickExport MagickOffsetType
94  SeekBlob(Image *,const MagickOffsetType,const int),
95  TellBlob(const Image *);
96 
97 extern MagickExport MagickSizeType
98  ReadBlobLongLong(Image *),
99  ReadBlobMSBLongLong(Image *);
100 
101 extern MagickExport signed int
102  ReadBlobLSBSignedLong(Image *),
103  ReadBlobMSBSignedLong(Image *),
104  ReadBlobSignedLong(Image *);
105 
106 extern MagickExport signed short
107  ReadBlobLSBSignedShort(Image *),
108  ReadBlobMSBSignedShort(Image *),
109  ReadBlobSignedShort(Image *);
110 
111 extern MagickExport ssize_t
112  ReadBlob(Image *,const size_t,unsigned char *),
113  WriteBlob(Image *,const size_t,const unsigned char *),
114  WriteBlobByte(Image *,const unsigned char),
115  WriteBlobFloat(Image *,const float),
116  WriteBlobLong(Image *,const unsigned int),
117  WriteBlobShort(Image *,const unsigned short),
118  WriteBlobLSBLong(Image *,const unsigned int),
119  WriteBlobLSBShort(Image *,const unsigned short),
120  WriteBlobLSBSignedLong(Image *,const signed int),
121  WriteBlobLSBSignedShort(Image *,const signed short),
122  WriteBlobMSBLong(Image *,const unsigned int),
123  WriteBlobMSBLongLong(Image *,const MagickSizeType),
124  WriteBlobMSBShort(Image *,const unsigned short),
125  WriteBlobMSBSignedLong(Image *,const signed int),
126  WriteBlobMSBSignedShort(Image *,const signed short),
127  WriteBlobString(Image *,const char *);
128 
129 extern MagickExport unsigned char
130  *DetachBlob(BlobInfo *),
131  *MapBlob(int,const MapMode,const MagickOffsetType,const size_t);
132 
133 extern MagickExport unsigned int
134  ReadBlobLong(Image *),
135  ReadBlobLSBLong(Image *),
136  ReadBlobMSBLong(Image *);
137 
138 extern MagickExport unsigned short
139  ReadBlobShort(Image *),
140  ReadBlobLSBShort(Image *),
141  ReadBlobMSBShort(Image *);
142 
143 extern MagickExport void
144  AttachBlob(BlobInfo *,const void *,const size_t),
145  GetBlobInfo(BlobInfo *),
146  MSBOrderLong(unsigned char *,const size_t),
147  MSBOrderShort(unsigned char *,const size_t);
148 
149 extern MagickPrivate void
150  DisassociateBlob(Image *);
151 
152 #if defined(__cplusplus) || defined(c_plusplus)
153 }
154 #endif
155 
156 #endif
Definition: image.h:152