MagickCore  6.8.9
cache-private.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2014 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 cache private methods.
17 */
18 #ifndef _MAGICKCORE_CACHE_PRIVATE_H
19 #define _MAGICKCORE_CACHE_PRIVATE_H
20 
21 #include <time.h>
22 #include "magick/cache.h"
24 #include "magick/random_.h"
25 #include "magick/thread-private.h"
26 #include "magick/semaphore.h"
27 
28 #if defined(__cplusplus) || defined(c_plusplus)
29 extern "C" {
30 #endif
31 
32 typedef void
34 
35 typedef const IndexPacket
36  *(*GetVirtualIndexesFromHandler)(const Image *);
37 
38 typedef IndexPacket
39  *(*GetAuthenticIndexesFromHandler)(const Image *);
40 
41 typedef MagickBooleanType
42  (*GetOneAuthenticPixelFromHandler)(Image *,const ssize_t,const ssize_t,
45  const ssize_t,const ssize_t,PixelPacket *,ExceptionInfo *),
47 
48 typedef const PixelPacket
49  *(*GetVirtualPixelHandler)(const Image *,const VirtualPixelMethod,
50  const ssize_t,const ssize_t,const size_t,const size_t,ExceptionInfo *),
51  *(*GetVirtualPixelsHandler)(const Image *);
52 
53 typedef PixelPacket
54  *(*GetAuthenticPixelsHandler)(Image *,const ssize_t,const ssize_t,
55  const size_t,const size_t,ExceptionInfo *);
56 
57 typedef PixelPacket
58  *(*GetAuthenticPixelsFromHandler)(const Image *);
59 
60 typedef PixelPacket
61  *(*QueueAuthenticPixelsHandler)(Image *,const ssize_t,const ssize_t,
62  const size_t,const size_t,ExceptionInfo *);
63 
64 typedef void
65  (*DestroyPixelHandler)(Image *);
66 
67 typedef struct _CacheMethods
68 {
71 
74 
77 
80 
83 
86 
89 
92 
95 
98 
101 } CacheMethods;
102 
103 typedef struct _NexusInfo
104 {
107 
110 
113 
114  PixelPacket
116  *pixels;
117 
120 
123 
124  size_t
126 } NexusInfo;
127 
128 typedef struct _CacheInfo
129 {
130  ClassType
132 
135 
136  size_t
138 
139  CacheType
141 
142  MapMode
144 
147 
148  size_t
150  rows;
151 
154 
157 
158  VirtualPixelMethod
160 
163 
164  size_t
166 
167  NexusInfo
169 
170  PixelPacket
172 
175 
178 
179  int
181 
182  char
185 
188 
189  RandomInfo
191 
192  size_t
194 
195  void
197 
200  debug;
201 
203  id;
204 
205  ssize_t
207 
211 
212  time_t
214 
215  size_t
217 } CacheInfo;
218 
219 extern MagickExport Cache
220  AcquirePixelCache(const size_t),
221  ClonePixelCache(const Cache),
224 
225 extern MagickExport CacheType
226  GetPixelCacheType(const Image *);
227 
228 extern MagickExport ClassType
230 
233 
234 extern MagickExport const IndexPacket
236 
237 extern MagickExport const PixelPacket
238  *GetVirtualPixelsFromNexus(const Image *,const VirtualPixelMethod,
239  const ssize_t,const ssize_t,const size_t,const size_t,NexusInfo *,
242 
244  SyncAuthenticPixelCacheNexus(Image *,NexusInfo *,ExceptionInfo *)
246 
248  GetPixelCacheNexusExtent(const Cache,NexusInfo *);
249 
250 extern MagickExport NexusInfo
251  **AcquirePixelCacheNexus(const size_t),
252  **DestroyPixelCacheNexus(NexusInfo **,const size_t);
253 
254 extern MagickExport PixelPacket
255  *GetAuthenticPixelCacheNexus(Image *,const ssize_t,const ssize_t,
256  const size_t,const size_t,NexusInfo *,ExceptionInfo *) magick_hot_spot,
257  *QueueAuthenticPixel(Image *,const ssize_t,const ssize_t,const size_t,
258  const size_t,const MagickBooleanType,NexusInfo *,ExceptionInfo *),
259  *QueueAuthenticPixelCacheNexus(Image *,const ssize_t,const ssize_t,
260  const size_t,const size_t,const MagickBooleanType,NexusInfo *,
261  ExceptionInfo *) magick_hot_spot;
262 
263 extern MagickExport size_t
264  GetPixelCacheChannels(const Cache);
265 
266 extern MagickExport void
267  ClonePixelCacheMethods(Cache,const Cache),
268  GetPixelCacheTileSize(const Image *,size_t *,size_t *),
270  SetPixelCacheMethods(Cache,CacheMethods *);
271 
272 extern MagickPrivate MagickBooleanType
273  SyncImagePixelCache(Image *,ExceptionInfo *);
274 
275 #if defined(__cplusplus) || defined(c_plusplus)
276 }
277 #endif
278 
279 #endif
SemaphoreInfo * file_semaphore
Definition: cache-private.h:209
struct _CacheMethods CacheMethods
MagickSizeType length
Definition: cache-private.h:156
GetVirtualPixelsHandler get_virtual_pixels_handler
Definition: cache-private.h:73
MagickOffsetType offset
Definition: cache-private.h:153
IndexPacket * indexes
Definition: cache-private.h:122
size_t signature
Definition: cache-private.h:125
size_t number_connections
Definition: cache-private.h:193
GetVirtualPixelHandler get_virtual_pixel_handler
Definition: cache-private.h:70
MagickExport NexusInfo ** DestroyPixelCacheNexus(NexusInfo **, const size_t)
Definition: cache.c:1025
MapMode mode
Definition: cache-private.h:143
MagickBooleanType(* GetOneAuthenticPixelFromHandler)(Image *, const ssize_t, const ssize_t, PixelPacket *, ExceptionInfo *)
Definition: cache-private.h:42
Definition: exception.h:102
SyncAuthenticPixelsHandler sync_authentic_pixels_handler
Definition: cache-private.h:97
MagickExport Cache ReferencePixelCache(Cache)
Definition: cache.c:4531
MagickPrivate MagickBooleanType SyncImagePixelCache(Image *, ExceptionInfo *)
Definition: cache.c:5152
VirtualPixelMethod
Definition: cache-view.h:27
MagickThreadType id
Definition: cache-private.h:203
MagickBooleanType authentic_pixel_cache
Definition: cache-private.h:119
MagickBooleanType debug
Definition: cache-private.h:199
GetOneVirtualPixelFromHandler get_one_virtual_pixel_from_handler
Definition: cache-private.h:79
MagickExport void SetPixelCacheMethods(Cache, CacheMethods *)
Definition: cache.c:4569
Definition: pixel.h:131
const PixelPacket *(*)*(* GetVirtualPixelsHandler)(const Image *)
Definition: cache-private.h:51
MagickExport PixelPacket * QueueAuthenticPixelCacheNexus(Image *, const ssize_t, const ssize_t, const size_t, const size_t, const MagickBooleanType, NexusInfo *, ExceptionInfo *) magick_hot_spot
Definition: cache.c:3952
MagickBooleanType active_index_channel
Definition: cache-private.h:177
Definition: random.c:77
struct _CacheInfo CacheInfo
MagickExport ClassType GetPixelCacheStorageClass(const Cache)
Definition: cache.c:2236
ssize_t MagickOffsetType
Definition: magick-type.h:155
MagickBooleanType mapped
Definition: cache-private.h:106
MagickExport PixelPacket * QueueAuthenticPixel(Image *, const ssize_t, const ssize_t, const size_t, const size_t, const MagickBooleanType, NexusInfo *, ExceptionInfo *)
Definition: image.h:152
GetVirtualIndexesFromHandler get_virtual_indexes_from_handler
Definition: cache-private.h:76
MagickBooleanType synchronize
Definition: cache-private.h:199
MagickExport MagickBooleanType SyncAuthenticPixelCacheNexus(Image *, NexusInfo *, ExceptionInfo *) magick_hot_spot
RandomInfo * random_info
Definition: cache-private.h:190
GetAuthenticPixelsHandler get_authentic_pixels_handler
Definition: cache-private.h:82
size_t channels
Definition: cache-private.h:137
const PixelPacket *(* GetVirtualPixelHandler)(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:49
MagickExport Cache DestroyPixelCache(Cache)
MagickBooleanType(*)(*)(* SyncAuthenticPixelsHandler)(Image *, ExceptionInfo *)
Definition: cache-private.h:46
struct _NexusInfo NexusInfo
MagickExport size_t GetPixelCacheChannels(const Cache)
Definition: cache.c:2030
const IndexPacket *(* GetVirtualIndexesFromHandler)(const Image *)
Definition: cache-private.h:36
MagickBooleanType
Definition: magick-type.h:211
MagickExport Cache AcquirePixelCache(const size_t)
ClassType
Definition: magick-type.h:204
pid_t MagickThreadType
Definition: thread_.h:30
void * server_info
Definition: cache-private.h:196
Definition: pixel.h:104
time_t timestamp
Definition: cache-private.h:213
GetAuthenticPixelsFromHandler get_authentic_pixels_from_handler
Definition: cache-private.h:91
MagickExport NexusInfo ** AcquirePixelCacheNexus(const size_t)
CacheMethods methods
Definition: cache-private.h:187
#define MaxTextExtent
Definition: method-attribute.h:106
#define magick_hot_spot
Definition: method-attribute.h:135
QueueAuthenticPixelsHandler queue_authentic_pixels_handler
Definition: cache-private.h:94
Definition: cache-private.h:67
RectangleInfo region
Definition: cache-private.h:109
MagickPixelPacket virtual_pixel_color
Definition: cache-private.h:162
size_t MagickSizeType
Definition: magick-type.h:156
void(* DestroyPixelHandler)(Image *)
Definition: cache-private.h:65
DestroyPixelHandler destroy_pixel_handler
Definition: cache-private.h:100
CacheType type
Definition: cache-private.h:140
GetAuthenticIndexesFromHandler get_authentic_indexes_from_handler
Definition: cache-private.h:85
SemaphoreInfo * semaphore
Definition: cache-private.h:209
char filename[MaxTextExtent]
Definition: cache-private.h:183
ColorspaceType colorspace
Definition: cache-private.h:134
MagickBooleanType mapped
Definition: cache-private.h:146
MagickExport void GetPixelCacheTileSize(const Image *, size_t *, size_t *)
MagickExport const IndexPacket * GetVirtualIndexesFromNexus(const Cache, NexusInfo *)
Definition: cache.c:2393
size_t signature
Definition: cache-private.h:216
Definition: geometry.h:121
PixelPacket *(* GetAuthenticPixelsFromHandler)(const Image *)
Definition: cache-private.h:58
PixelPacket * cache
Definition: cache-private.h:115
VirtualPixelMethod virtual_pixel_method
Definition: cache-private.h:159
IndexPacket * indexes
Definition: cache-private.h:174
int file
Definition: cache-private.h:180
PixelPacket * pixels
Definition: cache-private.h:115
MagickExport ColorspaceType GetPixelCacheColorspace(const Cache)
Definition: cache.c:2066
Definition: cache-private.h:103
MagickExport PixelPacket * GetAuthenticPixelCacheNexus(Image *, const ssize_t, const ssize_t, const size_t, const size_t, NexusInfo *, ExceptionInfo *) magick_hot_spot
size_t number_threads
Definition: cache-private.h:165
size_t columns
Definition: cache-private.h:149
MagickExport void ClonePixelCacheMethods(Cache, const Cache)
MagickSizeType length
Definition: cache-private.h:112
ClassType storage_class
Definition: cache-private.h:131
CacheType
Definition: cache.h:27
NexusInfo ** nexus_info
Definition: cache-private.h:168
GetOneAuthenticPixelFromHandler get_one_authentic_pixel_from_handler
Definition: cache-private.h:88
Definition: cache-private.h:128
size_t rows
Definition: cache-private.h:149
MapMode
Definition: blob.h:30
ColorspaceType
Definition: colorspace.h:25
MagickExport const PixelPacket * GetVirtualPixelsFromNexus(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, const size_t, const size_t, NexusInfo *, ExceptionInfo *) magick_hot_spot
MagickExport void GetPixelCacheMethods(CacheMethods *)
#define MagickPrivate
Definition: method-attribute.h:99
MagickExport Cache ClonePixelCache(const Cache)
MagickExport const PixelPacket * GetVirtualPixelsNexus(const Cache, NexusInfo *)
Definition: cache.c:3163
PixelPacket *(* GetAuthenticPixelsHandler)(Image *, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:54
#define MagickExport
Definition: method-attribute.h:98
void * Cache
Definition: cache-private.h:33
MagickExport CacheType GetPixelCacheType(const Image *)
Definition: cache.c:1618
Quantum IndexPacket
Definition: pixel.h:129
PixelPacket *(* QueueAuthenticPixelsHandler)(Image *, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:61
IndexPacket *(* GetAuthenticIndexesFromHandler)(const Image *)
Definition: cache-private.h:39
MagickBooleanType(*)(* GetOneVirtualPixelFromHandler)(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, PixelPacket *, ExceptionInfo *)
Definition: cache-private.h:44
PixelPacket * pixels
Definition: cache-private.h:171
char cache_filename[MaxTextExtent]
Definition: cache-private.h:183
Definition: semaphore.c:58
MagickExport MagickSizeType GetPixelCacheNexusExtent(const Cache, NexusInfo *)
Definition: cache.c:2145
ssize_t reference_count
Definition: cache-private.h:206