MagickCore 6.9.13
Loading...
Searching...
No Matches
blob-private.h
1/*
2 Copyright 1999 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)
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 *magick_restrict,ssize_t *)
73 magick_hot_spot;
74
75extern MagickExport double
76 ReadBlobDouble(Image *);
77
78extern MagickExport float
79 ReadBlobFloat(Image *);
80
81extern MagickExport int
82 EOFBlob(const Image *),
83 ErrorBlob(const Image *),
84 ReadBlobByte(Image *);
85
86extern 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
93extern MagickExport MagickOffsetType
94 SeekBlob(Image *,const MagickOffsetType,const int),
95 TellBlob(const Image *);
96
97extern MagickExport MagickSizeType
98 ReadBlobLongLong(Image *),
99 ReadBlobMSBLongLong(Image *);
100
101extern MagickExport signed int
102 ReadBlobLSBSignedLong(Image *),
103 ReadBlobMSBSignedLong(Image *),
104 ReadBlobSignedLong(Image *);
105
106extern MagickExport signed short
107 ReadBlobLSBSignedShort(Image *),
108 ReadBlobMSBSignedShort(Image *),
109 ReadBlobSignedShort(Image *);
110
111extern 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
129extern MagickExport unsigned char
130 *DetachBlob(BlobInfo *),
131 *MapBlob(int,const MapMode,const MagickOffsetType,const size_t);
132
133extern MagickExport unsigned int
134 ReadBlobLong(Image *),
135 ReadBlobLSBLong(Image *),
136 ReadBlobMSBLong(Image *);
137
138extern MagickExport unsigned short
139 ReadBlobShort(Image *),
140 ReadBlobLSBShort(Image *),
141 ReadBlobMSBShort(Image *);
142
143extern 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
149extern MagickPrivate void
150 DisassociateBlob(Image *);
151
152#if defined(__cplusplus) || defined(c_plusplus)
153}
154#endif
155
156#endif