55typedef int (*gdCacheTestFn_t)(
void *userdata,
void *keydata);
56typedef void *(*gdCacheFetchFn_t)(
char **error,
void *keydata);
57typedef void (*gdCacheReleaseFn_t)(
void *userdata);
60typedef struct gdCache_element_s gdCache_element_t;
61struct gdCache_element_s {
62 gdCache_element_t *next;
67typedef struct gdCache_head_s gdCache_head_t;
68struct gdCache_head_s {
69 gdCache_element_t *mru;
72 gdCacheTestFn_t gdCacheTest;
73 gdCacheFetchFn_t gdCacheFetch;
74 gdCacheReleaseFn_t gdCacheRelease;
78gdCache_head_t *gdCacheCreate(
int size, gdCacheTestFn_t gdCacheTest, gdCacheFetchFn_t gdCacheFetch,
79 gdCacheReleaseFn_t gdCacheRelease);
81void gdCacheDelete(gdCache_head_t *head);
83void *gdCacheGet(gdCache_head_t *head,
void *keydata);