MagickCore  6.9.10
Convert, Edit, Or Compose Bitmap Images
cache-private.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2019 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  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
128 
129 typedef struct _OpenCLCacheInfo
130 {
131  cl_event
133 
134  cl_mem
136 
137  cl_uint
139 
142 
145 
149 
150 typedef struct _CacheInfo
151 {
152  ClassType
154 
157 
158  size_t
160 
161  CacheType
163 
164  MapMode
167 
170 
171  size_t
174 
177 
180 
183 
186 
187  size_t
189 
190  NexusInfo
192 
195 
198 
201 
202  int
204 
205  char
208 
211 
212  RandomInfo
214 
215  size_t
217 
218  void
220 
224 
226  id;
227 
228  ssize_t
230 
234 
235  time_t
237 
238  size_t
240 
244 
245 extern MagickExport Cache
246  AcquirePixelCache(const size_t),
250 
251 extern MagickExport CacheType
252  GetPixelCacheType(const Image *);
253 
254 extern MagickExport ClassType
256 
259 
260 extern MagickExport const IndexPacket
262 
263 extern MagickExport const PixelPacket
265  const ssize_t,const ssize_t,const size_t,const size_t,NexusInfo *,
268 
272 
275 
276 extern MagickExport NexusInfo
277  **AcquirePixelCacheNexus(const size_t),
278  **DestroyPixelCacheNexus(NexusInfo **,const size_t);
279 
281  *GetAuthenticPixelCacheNexus(Image *,const ssize_t,const ssize_t,
282  const size_t,const size_t,NexusInfo *,ExceptionInfo *) magick_hot_spot,
283  *QueueAuthenticPixel(Image *,const ssize_t,const ssize_t,const size_t,
284  const size_t,const MagickBooleanType,NexusInfo *,ExceptionInfo *),
285  *QueueAuthenticPixelCacheNexus(Image *,const ssize_t,const ssize_t,
286  const size_t,const size_t,const MagickBooleanType,NexusInfo *,
288 
289 extern MagickExport size_t
291 
292 extern MagickExport void
294  GetPixelCacheTileSize(const Image *,size_t *,size_t *),
297 
298 extern MagickPrivate void
299  ResetPixelCacheEpoch(void);
300 
303 
304 #if defined(MAGICKCORE_OPENCL_SUPPORT)
305 extern MagickPrivate cl_event
306  *GetOpenCLEvents(const Image *,cl_uint *);
307 
308 extern MagickPrivate cl_mem
309  GetAuthenticOpenCLBuffer(const Image *,ExceptionInfo *);
310 
311 extern MagickPrivate void
312  AddOpenCLEvent(const Image *,cl_event),
313  SyncAuthenticOpenCLBuffer(const Image *);
314 #endif
315 
316 #if defined(__cplusplus) || defined(c_plusplus)
317 }
318 #endif
319 
320 #endif
#define magick_restrict
Definition: MagickCore.h:41
MapMode
Definition: blob.h:31
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:1242
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:4348
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:2372
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:3544
MagickExport Cache DestroyPixelCache(Cache)
MagickExport Cache ClonePixelCache(const Cache)
struct _CacheInfo CacheInfo
MagickExport void SetPixelCacheMethods(Cache, CacheMethods *)
Definition: cache.c:4996
PixelPacket *(* GetAuthenticPixelsFromHandler)(const Image *)
Definition: cache-private.h:59
MagickExport MagickSizeType GetPixelCacheNexusExtent(const Cache, NexusInfo *)
Definition: cache.c:2523
MagickExport ClassType GetPixelCacheStorageClass(const Cache)
Definition: cache.c:2613
MagickExport Cache ReferencePixelCache(Cache)
Definition: cache.c:4935
MagickPrivate void ResetPixelCacheEpoch(void)
Definition: cache.c:4967
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:1962
void * Cache
Definition: cache-private.h:34
MagickExport ColorspaceType GetPixelCacheColorspace(const Cache)
Definition: cache.c:2408
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:5642
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:2770
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:189
size_t MagickSizeType
Definition: magick-type.h:140
MagickBooleanType
Definition: magick-type.h:196
#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:60
Definition: cache-private.h:151
MagickPixelPacket virtual_pixel_color
Definition: cache-private.h:185
time_t timestamp
Definition: cache-private.h:236
size_t channels
Definition: cache-private.h:159
ssize_t reference_count
Definition: cache-private.h:229
size_t rows
Definition: cache-private.h:173
ColorspaceType colorspace
Definition: cache-private.h:156
PixelPacket * pixels
Definition: cache-private.h:194
MagickSizeType length
Definition: cache-private.h:179
CacheMethods methods
Definition: cache-private.h:210
MagickThreadType id
Definition: cache-private.h:226
IndexPacket * indexes
Definition: cache-private.h:197
SemaphoreInfo * file_semaphore
Definition: cache-private.h:233
SemaphoreInfo * semaphore
Definition: cache-private.h:232
size_t signature
Definition: cache-private.h:239
size_t columns
Definition: cache-private.h:172
RandomInfo * random_info
Definition: cache-private.h:213
char cache_filename[MaxTextExtent]
Definition: cache-private.h:207
OpenCLCacheInfo * opencl
Definition: cache-private.h:242
void * server_info
Definition: cache-private.h:219
ClassType storage_class
Definition: cache-private.h:153
MapMode disk_mode
Definition: cache-private.h:166
MagickBooleanType mapped
Definition: cache-private.h:169
MagickBooleanType active_index_channel
Definition: cache-private.h:200
MagickOffsetType offset
Definition: cache-private.h:176
char filename[MaxTextExtent]
Definition: cache-private.h:206
size_t number_threads
Definition: cache-private.h:188
NexusInfo ** nexus_info
Definition: cache-private.h:191
VirtualPixelMethod virtual_pixel_method
Definition: cache-private.h:182
size_t number_connections
Definition: cache-private.h:216
CacheType type
Definition: cache-private.h:162
MagickBooleanType synchronize
Definition: cache-private.h:222
int file
Definition: cache-private.h:203
MagickBooleanType debug
Definition: cache-private.h:223
MapMode mode
Definition: cache-private.h:165
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
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:130
MagickSizeType length
Definition: cache-private.h:141
SemaphoreInfo * events_semaphore
Definition: cache-private.h:147
PixelPacket * pixels
Definition: cache-private.h:144
cl_mem buffer
Definition: cache-private.h:135
cl_uint event_count
Definition: cache-private.h:138
cl_event * events
Definition: cache-private.h:132
Definition: pixel.h:132
Definition: random.c:77
Definition: geometry.h:123
pid_t MagickThreadType
Definition: thread_.h:34