]> git.cameronkatri.com Git - cgit.git/blobdiff - cache.h
md2html: use proper formatting for hr
[cgit.git] / cache.h
diff --git a/cache.h b/cache.h
index 4dcbea31902cdbf39f75814791fe27c39c2afee2..470da4fc15647943f0ea3f446ed140cacd973d5f 100644 (file)
--- a/cache.h
+++ b/cache.h
@@ -6,18 +6,32 @@
 #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);
+
+
+/* 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);
 
 #endif /* CGIT_CACHE_H */