2 Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization
3 dedicated to making software imaging solutions freely available.
5 You may not use this file except in compliance with the License.
6 obtain a copy of the License at
8 https://www.imagemagick.org/script/license.php
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.
16 MagickCore Binary Large OBjects private methods.
18 #ifndef MAGICKCORE_BLOB_PRIVATE_H
19 #define MAGICKCORE_BLOB_PRIVATE_H
21 #include "MagickCore/image.h"
22 #include "MagickCore/stream.h"
23 #include "MagickCore/nt-base-private.h"
25 #if defined(__cplusplus) || defined(c_plusplus)
29 #define MagickMinBlobExtent 32767L
30 #if defined(MAGICKCORE_HAVE_FSEEKO)
59 extern MagickExport BlobInfo
60 *CloneBlobInfo(const BlobInfo *),
61 *ReferenceBlob(BlobInfo *);
63 extern MagickExport char
64 *ReadBlobString(Image *,char *);
66 extern MagickExport const struct stat
67 *GetBlobProperties(const Image *);
69 extern MagickExport const void
70 *ReadBlobStream(Image *,const size_t,void *,ssize_t *);
72 extern MagickExport double
73 ReadBlobDouble(Image *);
75 extern MagickExport float
76 ReadBlobFloat(Image *);
78 extern MagickExport int
79 EOFBlob(const Image *),
80 ReadBlobByte(Image *);
82 extern MagickExport MagickBooleanType
84 DiscardBlobBytes(Image *,const MagickSizeType),
85 OpenBlob(const ImageInfo *,Image *,const BlobMode,ExceptionInfo *),
86 SetBlobExtent(Image *,const MagickSizeType),
87 UnmapBlob(void *,const size_t);
89 extern MagickExport MagickOffsetType
90 SeekBlob(Image *,const MagickOffsetType,const int),
91 TellBlob(const Image *);
93 extern MagickExport MagickSizeType
94 ReadBlobLongLong(Image *),
95 ReadBlobMSBLongLong(Image *);
97 extern MagickExport signed int
98 ReadBlobLSBSignedLong(Image *),
99 ReadBlobMSBSignedLong(Image *),
100 ReadBlobSignedLong(Image *);
102 extern MagickExport signed short
103 ReadBlobLSBSignedShort(Image *),
104 ReadBlobMSBSignedShort(Image *),
105 ReadBlobSignedShort(Image *);
107 extern MagickExport ssize_t
108 ReadBlob(Image *,const size_t,void *),
109 WriteBlob(Image *,const size_t,const void *),
110 WriteBlobByte(Image *,const unsigned char),
111 WriteBlobFloat(Image *,const float),
112 WriteBlobLong(Image *,const unsigned int),
113 WriteBlobShort(Image *,const unsigned short),
114 WriteBlobLSBLong(Image *,const unsigned int),
115 WriteBlobLSBShort(Image *,const unsigned short),
116 WriteBlobLSBSignedLong(Image *,const signed int),
117 WriteBlobLSBSignedShort(Image *,const signed short),
118 WriteBlobMSBLong(Image *,const unsigned int),
119 WriteBlobMSBLongLong(Image *,const MagickSizeType),
120 WriteBlobMSBShort(Image *,const unsigned short),
121 WriteBlobMSBSignedLong(Image *,const signed int),
122 WriteBlobMSBSignedShort(Image *,const signed short),
123 WriteBlobString(Image *,const char *);
125 extern MagickExport unsigned int
126 ReadBlobLong(Image *),
127 ReadBlobLSBLong(Image *),
128 ReadBlobMSBLong(Image *);
130 extern MagickExport unsigned short
131 ReadBlobShort(Image *),
132 ReadBlobLSBShort(Image *),
133 ReadBlobMSBShort(Image *);
135 extern MagickExport void
136 AttachBlob(BlobInfo *,const void *,const size_t),
137 *DetachBlob(BlobInfo *),
138 DisassociateBlob(Image *),
139 GetBlobInfo(BlobInfo *),
140 *MapBlob(int,const MapMode,const MagickOffsetType,const size_t),
141 MSBOrderLong(unsigned char *,const size_t),
142 MSBOrderShort(unsigned char *,const size_t);
144 #if defined(__cplusplus) || defined(c_plusplus)