aboutsummaryrefslogtreecommitdiffstats
path: root/cache.h
diff options
context:
space:
mode:
authorLars Hjemli2008-05-03 10:10:07 +0200
committerLars Hjemli2008-05-03 10:10:07 +0200
commite19683bedebc74593cb4c4518e47a334a5478e1e (patch)
tree8b4f231327d27b9451a6d9ab4b2af47558c61352 /cache.h
parent112b2080626c62fff27cf8aaa9ac2fb07eb50b74 (diff)
parent9000bbf865cb3578ba5ed3810dc44253cb46ec7f (diff)
downloadcgit-e19683bedebc74593cb4c4518e47a334a5478e1e.tar.gz
cgit-e19683bedebc74593cb4c4518e47a334a5478e1e.tar.bz2
cgit-e19683bedebc74593cb4c4518e47a334a5478e1e.zip
Merge branch 'lh/cache'
* lh/cache: Add page 'ls_cache' Redesign the caching layer
Diffstat (limited to 'cache.h')
-rw-r--r--cache.h38
1 files changed, 25 insertions, 13 deletions
diff --git a/cache.h b/cache.h
index 4dcbea3..66cc41f 100644
--- a/cache.h
+++ b/cache.h
@@ -6,18 +6,30 @@
6#ifndef CGIT_CACHE_H 6#ifndef CGIT_CACHE_H
7#define CGIT_CACHE_H 7#define CGIT_CACHE_H
8 8
9struct cacheitem { 9typedef void (*cache_fill_fn)(void *cbdata);
10 char *name; 10
11 struct stat st; 11
12 int ttl; 12/* Print cached content to stdout, generate the content if necessary.
13 int fd; 13 *
14}; 14 * Parameters
15 15 * size max number of cache files
16extern char *cache_safe_filename(const char *unsafe); 16 * path directory used to store cache files
17extern int cache_lock(struct cacheitem *item); 17 * key the key used to lookup cache files
18extern int cache_unlock(struct cacheitem *item); 18 * ttl max cache time in seconds for this key
19extern int cache_cancel_lock(struct cacheitem *item); 19 * fn content generator function for this key
20extern int cache_exist(struct cacheitem *item); 20 * cbdata user-supplied data to the content generator function
21extern int cache_expired(struct cacheitem *item); 21 *
22 * Return value
23 * 0 indicates success, everyting else is an error
24 */
25extern int cache_process(int size, const char *path, const char *key, int ttl,
26 cache_fill_fn fn, void *cbdata);
27
28
29/* List info about all cache entries on stdout */
30extern int cache_ls(const char *path);
31
32/* Print a message to stdout */
33extern void cache_log(const char *format, ...);
22 34
23#endif /* CGIT_CACHE_H */ 35#endif /* CGIT_CACHE_H */