00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00026 #ifndef CACHE_CACHE_H
00027 #define CACHE_CACHE_H
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00033 #include "mod_cache.h"
00034
00036 typedef struct cache_cache_t cache_cache_t;
00037
00039 typedef void cache_cache_inc_frequency(void*a);
00041 typedef apr_size_t cache_cache_get_size(void*a);
00043 typedef const char* cache_cache_get_key(void *a);
00045 typedef void cache_cache_free(void *a);
00046
00060 cache_cache_t* cache_init(int max_entries,
00061 apr_size_t max_size,
00062 cache_pqueue_get_priority get_pri,
00063 cache_pqueue_set_priority set_pri,
00064 cache_pqueue_getpos get_pos,
00065 cache_pqueue_setpos set_pos,
00066 cache_cache_inc_frequency *inc_entry,
00067 cache_cache_get_size *size_entry,
00068 cache_cache_get_key *key_entry,
00069 cache_cache_free *free_entry);
00070
00075 void cache_free(cache_cache_t *c);
00081 void* cache_find(cache_cache_t* c, const char *key);
00087 void cache_update(cache_cache_t* c, void *entry);
00093 void cache_insert(cache_cache_t* c, void *entry);
00099 void* cache_pop(cache_cache_t* c);
00105 apr_status_t cache_remove(cache_cache_t* c, void *entry);
00106 #ifdef __cplusplus
00107 }
00108 #endif
00109
00110 #endif
00111