MagickCache 1.0.0
MagickCache: an Efficient Image Cache
Loading...
Searching...
No Matches
MagickCache.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
17/*
18 The MagickCache provides secure methods and tools to cache images, image
19 sequences, video, audio or metadata in a local folder. Any content is
20 memory-mapped for efficient retrieval. Additional efficiences are possible
21 by retrieving a portion of an image. Content can persist or you can assign
22 a time-to-live (TTL) to automatically expire content when the TTL is
23 exceeded. MagickCache supports virtually unlimited content upwards of
24 billions of images making it suitable as a web image service.
25*/
26
27#ifndef MAGICKCACHE_MAGICKCACHE_H
28#define MAGICKCACHE_MAGICKCACHE_H
29
30#include <limits.h>
31#include <MagickCore/MagickCore.h>
32#include "MagickCache/version.h"
33
34#if defined(__cplusplus) || defined(c_plusplus)
35extern "C" {
36#endif
37
38typedef enum
39{
40 UndefinedResourceType,
41 BlobResourceType,
42 ImageResourceType,
43 MetaResourceType,
44 WildResourceType
45} MagickCacheResourceType;
46
47typedef struct _MagickCache
49
50typedef struct _MagickCacheResource
52
53extern MagickExport char
54 *GetMagickCacheException(const MagickCache *,ExceptionType *),
55 *GetMagickCacheResourceException(const MagickCacheResource *,ExceptionType *),
56 *GetMagickCacheResourceIRI(const MagickCacheResource *),
57 *GetMagickCacheResourceMeta(MagickCache *,MagickCacheResource *);
58
59extern MagickExport Image
60 *GetMagickCacheResourceImage(MagickCache *cache,MagickCacheResource *,
61 const char *);
62
63extern MagickExport MagickBooleanType
64 ClearMagickCacheException(MagickCache *),
65 ClearMagickCacheResource(MagickCacheResource *),
66 CreateMagickCache(const char *,const StringInfo *),
67 DeleteMagickCacheResource(MagickCache *,MagickCacheResource *),
68 GetMagickCacheResource(MagickCache *,MagickCacheResource *),
69 GetMagickCacheResourceID(MagickCache *,const size_t,char *),
70 IdentifyMagickCacheResource(MagickCache *,MagickCacheResource *,FILE *),
71 IsMagickCacheResourceExpired(MagickCache *,MagickCacheResource *),
72 IterateMagickCacheResources(MagickCache *,const char *,const void *,
73 MagickBooleanType (*callback)(MagickCache *,MagickCacheResource *,
74 const void *)),
75 PutMagickCacheResource(MagickCache *,MagickCacheResource *),
76 PutMagickCacheResourceBlob(MagickCache *,MagickCacheResource *,const size_t,
77 const void *),
78 PutMagickCacheResourceImage(MagickCache *,MagickCacheResource *,
79 const Image *),
80 PutMagickCacheResourceMeta(MagickCache *,MagickCacheResource *,const char *),
81 SetMagickCacheResourceIRI(MagickCache *,MagickCacheResource *,const char *),
82 SetMagickCacheResourceVersion(MagickCacheResource *,const size_t);
83
84extern MagickExport MagickCache
85 *AcquireMagickCache(const char *,const StringInfo *),
86 *DestroyMagickCache(MagickCache *);
87
88extern MagickExport MagickCacheResource
89 *AcquireMagickCacheResource(MagickCache *,const char *),
90 *DestroyMagickCacheResource(MagickCacheResource *);
91
92extern MagickExport MagickCacheResourceType
93 GetMagickCacheResourceType(const MagickCacheResource *);
94
95extern MagickExport size_t
96 GetMagickCacheResourceExtent(const MagickCacheResource *),
97 GetMagickCacheResourceVersion(const MagickCacheResource *);
98
99extern MagickExport time_t
100 GetMagickCacheTimestamp(const MagickCache *),
101 GetMagickCacheResourceTimestamp(const MagickCacheResource *),
102 GetMagickCacheResourceTTL(const MagickCacheResource *);
103
104extern MagickExport void
105 *GetMagickCacheResourceBlob(MagickCache *,MagickCacheResource *),
106 GetMagickCacheResourceSize(const MagickCacheResource *,size_t *,size_t *),
107 SetMagickCacheResourceTTL(MagickCacheResource *,const time_t);
108
109#if defined(__cplusplus) || defined(c_plusplus)
110}
111#endif
112
113#endif