author | Lars Hjemli <hjemli@gmail.com> | 2008-05-03 08:10:07 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2008-05-03 08:10:07 (UTC) |
commit | e19683bedebc74593cb4c4518e47a334a5478e1e (patch) (side-by-side diff) | |
tree | 8b4f231327d27b9451a6d9ab4b2af47558c61352 /cache.h | |
parent | 112b2080626c62fff27cf8aaa9ac2fb07eb50b74 (diff) | |
parent | 9000bbf865cb3578ba5ed3810dc44253cb46ec7f (diff) | |
download | cgit-e19683bedebc74593cb4c4518e47a334a5478e1e.zip cgit-e19683bedebc74593cb4c4518e47a334a5478e1e.tar.gz cgit-e19683bedebc74593cb4c4518e47a334a5478e1e.tar.bz2 |
Merge branch 'lh/cache'
* lh/cache:
Add page 'ls_cache'
Redesign the caching layer
-rw-r--r-- | cache.h | 38 |
1 files changed, 25 insertions, 13 deletions
@@ -5,19 +5,31 @@ #ifndef CGIT_CACHE_H #define CGIT_CACHE_H -struct cacheitem { - char *name; - struct stat st; - int ttl; - int fd; -}; - -extern char *cache_safe_filename(const char *unsafe); -extern int cache_lock(struct cacheitem *item); -extern int cache_unlock(struct cacheitem *item); -extern int cache_cancel_lock(struct cacheitem *item); -extern int cache_exist(struct cacheitem *item); -extern int cache_expired(struct cacheitem *item); +typedef void (*cache_fill_fn)(void *cbdata); + + +/* Print cached content to stdout, generate the content if necessary. + * + * Parameters + * size max number of cache files + * path directory used to store cache files + * key the key used to lookup cache files + * ttl max cache time in seconds for this key + * fn content generator function for this key + * cbdata user-supplied data to the content generator function + * + * Return value + * 0 indicates success, everyting else is an error + */ +extern int cache_process(int size, const char *path, const char *key, int ttl, + cache_fill_fn fn, void *cbdata); + + +/* List info about all cache entries on stdout */ +extern int cache_ls(const char *path); + +/* Print a message to stdout */ +extern void cache_log(const char *format, ...); #endif /* CGIT_CACHE_H */ |