aboutsummaryrefslogtreecommitdiff
path: root/cache.h
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
Diffstat (limited to 'cache.h')
-rw-r--r--cache.h38
1 files changed, 12 insertions, 26 deletions
diff --git a/cache.h b/cache.h
index 470da4f..4dcbea3 100644
--- a/cache.h
+++ b/cache.h
@@ -6,32 +6,18 @@
#ifndef CGIT_CACHE_H
#define CGIT_CACHE_H
-typedef void (*cache_fill_fn)(void);
+struct cacheitem {
+ char *name;
+ struct stat st;
+ int ttl;
+ int fd;
+};
-
-/* 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
- *
- * Return value
- * 0 indicates success, everything else is an error
- */
-extern int cache_process(int size, const char *path, const char *key, int ttl,
- cache_fill_fn fn);
-
-
-/* List info about all cache entries on stdout */
-extern int cache_ls(const char *path);
-
-/* Print a message to stdout */
-__attribute__((format (printf,1,2)))
-extern void cache_log(const char *format, ...);
-
-extern unsigned long hash_str(const char *str);
+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);
#endif /* CGIT_CACHE_H */