diff options
Diffstat (limited to 'cache.h')
-rw-r--r-- | cache.h | 33 |
1 files changed, 21 insertions, 12 deletions
@@ -6,18 +6,27 @@ | |||
6 | #ifndef CGIT_CACHE_H | 6 | #ifndef CGIT_CACHE_H |
7 | #define CGIT_CACHE_H | 7 | #define CGIT_CACHE_H |
8 | 8 | ||
9 | struct cacheitem { | 9 | typedef void (*cache_fill_fn)(void *cbdata); |
10 | char *name; | ||
11 | struct stat st; | ||
12 | int ttl; | ||
13 | int fd; | ||
14 | }; | ||
15 | 10 | ||
16 | extern char *cache_safe_filename(const char *unsafe); | 11 | |
17 | extern int cache_lock(struct cacheitem *item); | 12 | /* Print cached content to stdout, generate the content if necessary. |
18 | extern int cache_unlock(struct cacheitem *item); | 13 | * |
19 | extern int cache_cancel_lock(struct cacheitem *item); | 14 | * Parameters |
20 | extern int cache_exist(struct cacheitem *item); | 15 | * size max number of cache files |
21 | extern int cache_expired(struct cacheitem *item); | 16 | * path directory used to store cache files |
17 | * key the key used to lookup cache files | ||
18 | * ttl max cache time in seconds for this key | ||
19 | * fn content generator function for this key | ||
20 | * cbdata user-supplied data to the content generator function | ||
21 | * | ||
22 | * Return value | ||
23 | * 0 indicates success, everyting else is an error | ||
24 | */ | ||
25 | extern int cache_process(int size, const char *path, const char *key, int ttl, | ||
26 | cache_fill_fn fn, void *cbdata); | ||
27 | |||
28 | |||
29 | /* Print a message to stdout */ | ||
30 | extern void cache_log(const char *format, ...); | ||
22 | 31 | ||
23 | #endif /* CGIT_CACHE_H */ | 32 | #endif /* CGIT_CACHE_H */ |