MagickCore  6.9.11-60
Convert, Edit, Or Compose Bitmap Images
cache-private.h
Go to the documentation of this file.
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 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/opencl-private.h"
25 #include "magick/random_.h"
26 #include "magick/thread-private.h"
27 #include "magick/semaphore.h"
28 
29 #if defined(__cplusplus) || defined(c_plusplus)
30 extern "C" {
31 #endif
32 
33 typedef void
35 
36 typedef const IndexPacket
37  *(*GetVirtualIndexesFromHandler)(const Image *);
38 
39 typedef IndexPacket
40  *(*GetAuthenticIndexesFromHandler)(const Image *);
41 
43  (*GetOneAuthenticPixelFromHandler)(Image *,const ssize_t,const ssize_t,
46  const ssize_t,const ssize_t,PixelPacket *,ExceptionInfo *),
48 
49 typedef const PixelPacket
50  *(*GetVirtualPixelHandler)(const Image *,const VirtualPixelMethod,
51  const ssize_t,const ssize_t,const size_t,const size_t,ExceptionInfo *),
52  *(*GetVirtualPixelsHandler)(const Image *);
53 
54 typedef PixelPacket
55  *(*GetAuthenticPixelsHandler)(Image *,const ssize_t,const ssize_t,
56  const size_t,const size_t,ExceptionInfo *);
57 
58 typedef PixelPacket
59  *(*GetAuthenticPixelsFromHandler)(const Image *);
60 
61 typedef PixelPacket
62  *(*QueueAuthenticPixelsHandler)(Image *,const ssize_t,const ssize_t,
63  const size_t,const size_t,ExceptionInfo *);
64 
65 typedef void
67 
68 typedef struct _CacheMethods
69 {
72 
75 
78 
81 
84 
87 
90 
93 
96 
99 
103 
104 typedef struct _NexusInfo
105 {
108 
111 
114 
118 
121 
124 
125  size_t
127 
128  struct _NexusInfo
131 
132 typedef struct _OpenCLCacheInfo
133 {
134  cl_event
136 
137  cl_mem
139 
140  cl_uint
142 
145 
148 
152 
153 typedef struct _CacheInfo
154 {
155  ClassType
157 
160 
161  size_t
163 
164  CacheType
166 
167  MapMode
170 
173 
174  size_t
177 
180 
183 
186 
189 
190  size_t
192 
193  NexusInfo
195 
198 
201 
204 
205  int
207 
208  char
211 
214 
215  RandomInfo
217 
218  size_t
220 
221  void
223 
227 
229  id;
230 
231  ssize_t
233 
237 
238  time_t
240 
241  size_t
243 
246 
251 
252 extern MagickExport Cache
253  AcquirePixelCache(const size_t),
257 
258 extern MagickExport CacheType
259  GetPixelCacheType(const Image *);
260 
261 extern MagickExport ClassType
263 
266 
267 extern MagickExport const IndexPacket
269 
270 extern MagickExport const PixelPacket
272  const ssize_t,const ssize_t,const size_t,const size_t,NexusInfo *,
275 
279 
282 
283 extern MagickExport NexusInfo
284  **AcquirePixelCacheNexus(const size_t),
285  **DestroyPixelCacheNexus(NexusInfo **,const size_t);
286 
288  *GetAuthenticPixelCacheNexus(Image *,const ssize_t,const ssize_t,
289  const size_t,const size_t,NexusInfo *,ExceptionInfo *) magick_hot_spot,
290  *QueueAuthenticPixel(Image *,const ssize_t,const ssize_t,const size_t,
291  const size_t,const MagickBooleanType,NexusInfo *,ExceptionInfo *),
292  *QueueAuthenticPixelCacheNexus(Image *,const ssize_t,const ssize_t,
293  const size_t,const size_t,const MagickBooleanType,NexusInfo *,
295 
296 extern MagickExport size_t
298 
299 extern MagickExport void
301  GetPixelCacheTileSize(const Image *,size_t *,size_t *),
304 
305 extern MagickPrivate void
306  ResetPixelCacheEpoch(void);
307 
310 
311 #if defined(MAGICKCORE_OPENCL_SUPPORT)
312 extern MagickPrivate cl_event
313  *GetOpenCLEvents(const Image *,cl_uint *);
314 
315 extern MagickPrivate cl_mem
316  GetAuthenticOpenCLBuffer(const Image *,ExceptionInfo *);
317 
318 extern MagickPrivate void
319  AddOpenCLEvent(const Image *,cl_event),
320  SyncAuthenticOpenCLBuffer(const Image *);
321 #endif
322 
323 #if defined(__cplusplus) || defined(c_plusplus)
324 }
325 #endif
326 
327 #endif
#define magick_restrict
Definition: MagickCore.h:41
MapMode
Definition: blob.h:32
MagickBooleanType(* GetOneAuthenticPixelFromHandler)(Image *, const ssize_t, const ssize_t, PixelPacket *, ExceptionInfo *)
Definition: cache-private.h:43
MagickExport PixelPacket * QueueAuthenticPixel(Image *, const ssize_t, const ssize_t, const size_t, const size_t, const MagickBooleanType, NexusInfo *, ExceptionInfo *)
struct _NexusInfo NexusInfo
MagickBooleanType(*)(*)(* SyncAuthenticPixelsHandler)(Image *, ExceptionInfo *)
Definition: cache-private.h:47
MagickExport NexusInfo ** DestroyPixelCacheNexus(NexusInfo **, const size_t)
Definition: cache.c:1251
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:4361
const IndexPacket *(* GetVirtualIndexesFromHandler)(const Image *)
Definition: cache-private.h:37
const PixelPacket *(*) *(* GetVirtualPixelsHandler)(const Image *)
Definition: cache-private.h:52
MagickExport size_t GetPixelCacheChannels(const Cache)
Definition: cache.c:2382
MagickExport void GetPixelCacheTileSize(const Image *, size_t *, size_t *)
MagickExport PixelPacket * GetAuthenticPixelCacheNexus(Image *, const ssize_t, const ssize_t, const size_t, const size_t, NexusInfo *, ExceptionInfo *) magick_hot_spot
MagickExport const PixelPacket * GetVirtualPixelCacheNexus(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, const size_t, const size_t, NexusInfo *, ExceptionInfo *) magick_hot_spot
MagickExport Cache AcquirePixelCache(const size_t)
MagickExport const PixelPacket * GetVirtualPixelsNexus(const Cache, NexusInfo *)
Definition: cache.c:3538
MagickExport Cache DestroyPixelCache(Cache)
MagickExport Cache ClonePixelCache(const Cache)
struct _CacheInfo CacheInfo
MagickExport void SetPixelCacheMethods(Cache, CacheMethods *)
Definition: cache.c:5002
PixelPacket *(* GetAuthenticPixelsFromHandler)(const Image *)
Definition: cache-private.h:59
MagickExport MagickSizeType GetPixelCacheNexusExtent(const Cache, NexusInfo *)
Definition: cache.c:2533
MagickExport ClassType GetPixelCacheStorageClass(const Cache)
Definition: cache.c:2623
MagickExport Cache ReferencePixelCache(Cache)
Definition: cache.c:4941
MagickPrivate void ResetPixelCacheEpoch(void)
Definition: cache.c:4973
struct _OpenCLCacheInfo OpenCLCacheInfo
MagickBooleanType(*)(* GetOneVirtualPixelFromHandler)(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, PixelPacket *, ExceptionInfo *)
Definition: cache-private.h:45
void(* DestroyPixelHandler)(Image *)
Definition: cache-private.h:66
MagickExport CacheType GetPixelCacheType(const Image *)
Definition: cache.c:1972
void * Cache
Definition: cache-private.h:34
MagickExport ColorspaceType GetPixelCacheColorspace(const Cache)
Definition: cache.c:2418
PixelPacket *(* GetAuthenticPixelsHandler)(Image *, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:55
PixelPacket *(* QueueAuthenticPixelsHandler)(Image *, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:62
MagickPrivate MagickBooleanType SyncImagePixelCache(Image *, ExceptionInfo *)
Definition: cache.c:5681
struct _CacheMethods CacheMethods
IndexPacket *(* GetAuthenticIndexesFromHandler)(const Image *)
Definition: cache-private.h:40
MagickExport void GetPixelCacheMethods(CacheMethods *)
const PixelPacket *(* GetVirtualPixelHandler)(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:50
MagickExport MagickBooleanType SyncAuthenticPixelCacheNexus(Image *, NexusInfo *magick_restrict, ExceptionInfo *) magick_hot_spot
MagickExport NexusInfo ** AcquirePixelCacheNexus(const size_t)
MagickExport void ClonePixelCacheMethods(Cache, const Cache)
MagickExport const IndexPacket * GetVirtualIndexesFromNexus(const Cache, NexusInfo *)
Definition: cache.c:2780
VirtualPixelMethod
Definition: cache-view.h:28
CacheType
Definition: cache.h:28
ColorspaceType
Definition: colorspace.h:26
ssize_t MagickOffsetType
Definition: magick-type.h:139
ClassType
Definition: magick-type.h:196
size_t MagickSizeType
Definition: magick-type.h:140
MagickBooleanType
Definition: magick-type.h:203
#define MagickPrivate
Definition: method-attribute.h:81
#define MagickExport
Definition: method-attribute.h:80
#define MaxTextExtent
Definition: method-attribute.h:89
#define magick_hot_spot
Definition: method-attribute.h:122
void * cl_mem
Definition: opencl-private.h:33
void * cl_uint
Definition: opencl-private.h:34
void * cl_event
Definition: opencl-private.h:32
Quantum IndexPacket
Definition: pixel.h:129
Definition: semaphore.c:61
Definition: cache-private.h:154
MagickPixelPacket virtual_pixel_color
Definition: cache-private.h:188
time_t timestamp
Definition: cache-private.h:239
size_t channels
Definition: cache-private.h:162
ssize_t reference_count
Definition: cache-private.h:232
MagickSizeType height_limit
Definition: cache-private.h:249
size_t rows
Definition: cache-private.h:176
ColorspaceType colorspace
Definition: cache-private.h:159
PixelPacket * pixels
Definition: cache-private.h:197
MagickSizeType length
Definition: cache-private.h:182
CacheMethods methods
Definition: cache-private.h:213
MagickThreadType id
Definition: cache-private.h:229
IndexPacket * indexes
Definition: cache-private.h:200
SemaphoreInfo * file_semaphore
Definition: cache-private.h:236
SemaphoreInfo * semaphore
Definition: cache-private.h:235
size_t signature
Definition: cache-private.h:242
size_t columns
Definition: cache-private.h:175
RandomInfo * random_info
Definition: cache-private.h:216
char cache_filename[MaxTextExtent]
Definition: cache-private.h:210
MagickSizeType width_limit
Definition: cache-private.h:248
OpenCLCacheInfo * opencl
Definition: cache-private.h:245
void * server_info
Definition: cache-private.h:222
ClassType storage_class
Definition: cache-private.h:156
MapMode disk_mode
Definition: cache-private.h:169
MagickBooleanType mapped
Definition: cache-private.h:172
MagickBooleanType active_index_channel
Definition: cache-private.h:203
MagickOffsetType offset
Definition: cache-private.h:179
char filename[MaxTextExtent]
Definition: cache-private.h:209
size_t number_threads
Definition: cache-private.h:191
NexusInfo ** nexus_info
Definition: cache-private.h:194
VirtualPixelMethod virtual_pixel_method
Definition: cache-private.h:185
size_t number_connections
Definition: cache-private.h:219
CacheType type
Definition: cache-private.h:165
MagickBooleanType synchronize
Definition: cache-private.h:225
int file
Definition: cache-private.h:206
MagickBooleanType debug
Definition: cache-private.h:226
MapMode mode
Definition: cache-private.h:168
Definition: cache-private.h:69
GetOneAuthenticPixelFromHandler get_one_authentic_pixel_from_handler
Definition: cache-private.h:89
GetAuthenticIndexesFromHandler get_authentic_indexes_from_handler
Definition: cache-private.h:86
GetAuthenticPixelsFromHandler get_authentic_pixels_from_handler
Definition: cache-private.h:92
GetOneVirtualPixelFromHandler get_one_virtual_pixel_from_handler
Definition: cache-private.h:80
GetVirtualIndexesFromHandler get_virtual_indexes_from_handler
Definition: cache-private.h:77
GetVirtualPixelHandler get_virtual_pixel_handler
Definition: cache-private.h:71
SyncAuthenticPixelsHandler sync_authentic_pixels_handler
Definition: cache-private.h:98
GetVirtualPixelsHandler get_virtual_pixels_handler
Definition: cache-private.h:74
QueueAuthenticPixelsHandler queue_authentic_pixels_handler
Definition: cache-private.h:95
DestroyPixelHandler destroy_pixel_handler
Definition: cache-private.h:101
GetAuthenticPixelsHandler get_authentic_pixels_handler
Definition: cache-private.h:83
Definition: exception.h:103
Definition: image.h:153
Definition: pixel.h:105
Definition: cache-private.h:105
MagickBooleanType mapped
Definition: cache-private.h:107
RectangleInfo region
Definition: cache-private.h:110
PixelPacket * pixels
Definition: cache-private.h:117
PixelPacket * cache
Definition: cache-private.h:116
MagickBooleanType authentic_pixel_cache
Definition: cache-private.h:120
struct _NexusInfo * virtual_nexus
Definition: cache-private.h:128
IndexPacket * indexes
Definition: cache-private.h:123
size_t signature
Definition: cache-private.h:126
MagickSizeType length
Definition: cache-private.h:113
Definition: cache-private.h:133
MagickSizeType length
Definition: cache-private.h:144
SemaphoreInfo * events_semaphore
Definition: cache-private.h:150
PixelPacket * pixels
Definition: cache-private.h:147
cl_mem buffer
Definition: cache-private.h:138
cl_uint event_count
Definition: cache-private.h:141
cl_event * events
Definition: cache-private.h:135
Definition: pixel.h:132
Definition: random.c:78
Definition: geometry.h:124
pid_t MagickThreadType
Definition: thread_.h:34