MagickCore  7.0.3
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. 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 "MagickCore/cache.h"
24 #include "MagickCore/pixel.h"
25 #include "MagickCore/random_.h"
27 #include "MagickCore/semaphore.h"
28 
29 #if defined(__cplusplus) || defined(c_plusplus)
30 extern "C" {
31 #endif
32 
33 typedef void
35 
36 typedef MagickBooleanType
37  (*GetOneAuthenticPixelFromHandler)(Image *,const ssize_t,const ssize_t,
40  const ssize_t,const ssize_t,Quantum *,ExceptionInfo *),
42 
43 typedef const Quantum
44  *(*GetVirtualPixelHandler)(const Image *,const VirtualPixelMethod,
45  const ssize_t,const ssize_t,const size_t,const size_t,ExceptionInfo *),
46  *(*GetVirtualPixelsHandler)(const Image *);
47 
48 typedef const void
49  *(*GetVirtualMetacontentFromHandler)(const Image *);
50 
51 typedef Quantum
52  *(*GetAuthenticPixelsHandler)(Image *,const ssize_t,const ssize_t,
53  const size_t,const size_t,ExceptionInfo *);
54 
55 typedef Quantum
56  *(*GetAuthenticPixelsFromHandler)(const Image *);
57 
58 typedef Quantum
59  *(*QueueAuthenticPixelsHandler)(Image *,const ssize_t,const ssize_t,
60  const size_t,const size_t,ExceptionInfo *);
61 
62 typedef void
63  (*DestroyPixelHandler)(Image *);
64 
65 typedef void
66  *(*GetAuthenticMetacontentFromHandler)(const Image *);
67 
68 typedef struct _CacheMethods
69 {
72 
75 
78 
81 
84 
87 
90 
93 
96 
99 
102 } CacheMethods;
103 
104 typedef struct _NexusInfo
105 {
108 
111 
114 
115  Quantum
117  *pixels;
118 
121 
122  void
124 
125  size_t
127 } NexusInfo;
128 
129 typedef struct _CacheInfo
130 {
131  ClassType
133 
136 
137  PixelTrait
139 
142 
143  size_t
145  rows;
146 
147  size_t
150 
153 
154  CacheType
156 
157  MapMode
159  disk_mode;
160 
163 
166 
169 
170  VirtualPixelMethod
172 
173  PixelInfo
175 
176  size_t
178 
179  NexusInfo
181 
182  Quantum
184 
185  void
187 
188  int
190 
191  char
194 
197 
198  RandomInfo
200 
201  void
203 
206  debug;
207 
209  id;
210 
211  ssize_t
213 
217 
218  time_t
220 
221  size_t
223 
226 
229 
232  height_limit;
233 } CacheInfo;
234 
235 extern MagickPrivate Cache
236  AcquirePixelCache(const size_t),
237  ClonePixelCache(const Cache),
240 
243 
246 
247 extern MagickPrivate const Quantum
248  *GetVirtualPixelCacheNexus(const Image *,const VirtualPixelMethod,
249  const ssize_t,const ssize_t,const size_t,const size_t,NexusInfo *,
252 
253 extern MagickPrivate const void
254  *GetVirtualMetacontentFromNexus(const Cache,NexusInfo *magick_restrict);
255 
257  CacheComponentGenesis(void),
258  SyncAuthenticPixelCacheNexus(Image *,NexusInfo *magick_restrict,
261 
263  GetPixelCacheNexusExtent(const Cache,NexusInfo *magick_restrict);
264 
266  **AcquirePixelCacheNexus(const size_t),
267  **DestroyPixelCacheNexus(NexusInfo **,const size_t);
268 
269 extern MagickPrivate Quantum
270  *GetAuthenticPixelCacheNexus(Image *,const ssize_t,const ssize_t,
271  const size_t,const size_t,NexusInfo *,ExceptionInfo *) magick_hot_spot,
272  *QueueAuthenticPixelCacheNexus(Image *,const ssize_t,const ssize_t,
273  const size_t,const size_t,const MagickBooleanType,NexusInfo *,
274  ExceptionInfo *) magick_hot_spot;
275 
276 extern MagickPrivate size_t
277  GetPixelCacheChannels(const Cache);
278 
279 extern MagickPrivate VirtualPixelMethod
280  GetPixelCacheVirtualMethod(const Image *),
281  SetPixelCacheVirtualMethod(Image *,const VirtualPixelMethod,ExceptionInfo *);
282 
283 extern MagickPrivate void
285  ClonePixelCacheMethods(Cache,const Cache),
286  GetPixelCacheTileSize(const Image *,size_t *,size_t *),
289  ResetPixelCacheEpoch(void),
290  ResetPixelCacheChannels(Image *),
291  SetPixelCacheMethods(Cache,CacheMethods *);
292 
293 #if defined(MAGICKCORE_OPENCL_SUPPORT)
294 extern MagickPrivate cl_mem
295  GetAuthenticOpenCLBuffer(const Image *,MagickCLDevice,ExceptionInfo *);
296 
297 extern MagickPrivate void
298  SyncAuthenticOpenCLBuffer(const Image *);
299 #endif
300 
301 #if defined(__cplusplus) || defined(c_plusplus)
302 }
303 #endif
304 
305 #endif
#define magick_restrict
Definition: MagickCore.h:41
MagickPrivate Cache DestroyPixelCache(Cache)
SemaphoreInfo * file_semaphore
struct _CacheMethods CacheMethods
MagickSizeType length
struct _MagickCLDevice * MagickCLDevice
Definition: opencl.h:44
GetVirtualPixelsHandler get_virtual_pixels_handler
Definition: cache-private.h:74
MagickOffsetType offset
size_t signature
void *(* GetAuthenticMetacontentFromHandler)(const Image *)
Definition: cache-private.h:66
void * metacontent
MagickPrivate MagickBooleanType CacheComponentGenesis(void)
MagickPrivate Quantum * GetAuthenticPixelCacheNexus(Image *, const ssize_t, const ssize_t, const size_t, const size_t, NexusInfo *, ExceptionInfo *) magick_hot_spot
GetVirtualPixelHandler get_virtual_pixel_handler
Definition: cache-private.h:71
MagickPrivate void GetPixelCacheMethods(CacheMethods *)
MapMode mode
MagickPrivate void GetPixelCacheTileSize(const Image *, size_t *, size_t *)
SyncAuthenticPixelsHandler sync_authentic_pixels_handler
Definition: cache-private.h:98
MagickPrivate MagickBooleanType SyncImagePixelCache(Image *, ExceptionInfo *)
Definition: cache.c:5469
VirtualPixelMethod
Definition: cache-view.h:27
char cache_filename[MagickPathExtent]
MagickPrivate Cache ReferencePixelCache(Cache)
Definition: cache.c:4716
PixelInfo virtual_pixel_color
MagickThreadType id
MagickBooleanType authentic_pixel_cache
MagickBooleanType debug
GetOneVirtualPixelFromHandler get_one_virtual_pixel_from_handler
Definition: cache-private.h:80
MagickCLCacheInfo opencl
MagickPrivate VirtualPixelMethod GetPixelCacheVirtualMethod(const Image *)
struct _CacheInfo CacheInfo
void * MagickCLCacheInfo
MagickPrivate NexusInfo ** DestroyPixelCacheNexus(NexusInfo **, const size_t)
Definition: cache.c:1102
MagickPrivate Cache ClonePixelCache(const Cache)
ssize_t MagickOffsetType
Definition: magick-type.h:129
MagickBooleanType mapped
Definition: image.h:151
MagickBooleanType synchronize
MagickPrivate const void * GetVirtualMetacontentFromNexus(const Cache, NexusInfo *magick_restrict)
size_t number_channels
RandomInfo * random_info
GetAuthenticPixelsHandler get_authentic_pixels_handler
Definition: cache-private.h:83
Quantum * pixels
MagickPrivate ClassType GetPixelCacheStorageClass(const Cache)
Definition: cache.c:2347
struct _NexusInfo NexusInfo
MagickBooleanType
Definition: magick-type.h:158
MagickPrivate void ClonePixelCacheMethods(Cache, const Cache)
ClassType
Definition: magick-type.h:151
pid_t MagickThreadType
Definition: thread_.h:34
void * server_info
time_t timestamp
GetAuthenticPixelsFromHandler get_authentic_pixels_from_handler
Definition: cache-private.h:92
Quantum *(* GetAuthenticPixelsHandler)(Image *, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:52
PixelChannelMap channel_map[MaxPixelChannels]
CacheMethods methods
QueueAuthenticPixelsHandler queue_authentic_pixels_handler
Definition: cache-private.h:95
RectangleInfo region
size_t MagickSizeType
Definition: magick-type.h:130
#define MagickPathExtent
DestroyPixelHandler destroy_pixel_handler
MagickBooleanType composite_mask
MagickPrivate const Quantum * GetVirtualPixelCacheNexus(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, const size_t, const size_t, NexusInfo *, ExceptionInfo *) magick_hot_spot
CacheType type
MagickPrivate void ResetCacheAnonymousMemory(void)
Quantum * pixels
MagickPrivate const Quantum * GetVirtualPixelsNexus(const Cache, NexusInfo *magick_restrict)
SemaphoreInfo * semaphore
MagickBooleanType(*)(* GetOneVirtualPixelFromHandler)(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, Quantum *, ExceptionInfo *)
Definition: cache-private.h:39
ColorspaceType colorspace
void * metacontent
MagickBooleanType mapped
MagickPrivate void CacheComponentTerminus(void)
const Quantum *(*)*(* GetVirtualPixelsHandler)(const Image *)
Definition: cache-private.h:46
GetVirtualMetacontentFromHandler get_virtual_metacontent_from_handler
Definition: cache-private.h:77
size_t signature
ChannelType
Definition: pixel.h:33
GetAuthenticMetacontentFromHandler get_authentic_metacontent_from_handler
Definition: cache-private.h:86
MagickPrivate MagickSizeType GetPixelCacheNexusExtent(const Cache, NexusInfo *magick_restrict)
Quantum * cache
size_t metacontent_extent
VirtualPixelMethod virtual_pixel_method
const Quantum *(* GetVirtualPixelHandler)(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:44
MagickPrivate Quantum * QueueAuthenticPixelCacheNexus(Image *, const ssize_t, const ssize_t, const size_t, const size_t, const MagickBooleanType, NexusInfo *, ExceptionInfo *) magick_hot_spot
Definition: cache.c:4118
size_t number_threads
size_t columns
PixelTrait alpha_trait
MagickPrivate size_t GetPixelCacheChannels(const Cache)
MagickBooleanType(* GetOneAuthenticPixelFromHandler)(Image *, const ssize_t, const ssize_t, Quantum *, ExceptionInfo *)
Definition: cache-private.h:37
MagickSizeType length
MagickSizeType height_limit
unsigned short Quantum
Definition: magick-type.h:82
MagickPrivate void ResetPixelCacheChannels(Image *)
MagickPrivate ColorspaceType GetPixelCacheColorspace(const Cache)
Definition: cache.c:2141
char filename[MagickPathExtent]
ClassType storage_class
CacheType
Definition: cache.h:27
MagickPrivate VirtualPixelMethod SetPixelCacheVirtualMethod(Image *, const VirtualPixelMethod, ExceptionInfo *)
Definition: cache.c:5169
NexusInfo ** nexus_info
GetOneAuthenticPixelFromHandler get_one_authentic_pixel_from_handler
Definition: cache-private.h:89
MagickPrivate NexusInfo ** AcquirePixelCacheNexus(const size_t)
MapMode
Definition: blob.h:27
ColorspaceType
Definition: colorspace.h:25
MagickSizeType width_limit
MagickBooleanType(*)(*)(* SyncAuthenticPixelsHandler)(Image *, ExceptionInfo *)
Definition: cache-private.h:41
MagickPrivate void ResetPixelCacheEpoch(void)
#define MaxPixelChannels
Definition: pixel.h:27
MagickPrivate MagickBooleanType SyncAuthenticPixelCacheNexus(Image *, NexusInfo *magick_restrict, ExceptionInfo *) magick_hot_spot
#define MagickPrivate
void * Cache
Definition: cache-private.h:34
const void *(* GetVirtualMetacontentFromHandler)(const Image *)
Definition: cache-private.h:49
MagickExport MagickBooleanType magick_hot_spot
Definition: cache-view.h:88
void(* DestroyPixelHandler)(Image *)
Definition: cache-private.h:63
ChannelType channels
PixelTrait
Definition: pixel.h:135
Quantum *(* QueueAuthenticPixelsHandler)(Image *, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:59
MapMode disk_mode
MagickPrivate void SetPixelCacheMethods(Cache, CacheMethods *)
Definition: cache.c:4835
Quantum *(* GetAuthenticPixelsFromHandler)(const Image *)
Definition: cache-private.h:56
MagickPrivate Cache AcquirePixelCache(const size_t)
ssize_t reference_count