summaryrefslogtreecommitdiff
path: root/cgit/cache.h
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:41:43 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:41:43 +0300
commit6bf7c5ce92ff6237c0b17c332873805018812b40 (patch)
tree18905aaed6af4be08f686f18aac1660f9606628d /cgit/cache.h
parentc93af47179aad2d3fae3bc756d058f3ff1a14ccf (diff)
parente94c3cd8bda6f9c2a6d0a613733c6eeddd1a406f (diff)
downloadProject-Tick-6bf7c5ce92ff6237c0b17c332873805018812b40.tar.gz
Project-Tick-6bf7c5ce92ff6237c0b17c332873805018812b40.zip
Add 'cgit/' from commit 'e94c3cd8bda6f9c2a6d0a613733c6eeddd1a406f'
git-subtree-dir: cgit git-subtree-mainline: c93af47179aad2d3fae3bc756d058f3ff1a14ccf git-subtree-split: e94c3cd8bda6f9c2a6d0a613733c6eeddd1a406f
Diffstat (limited to 'cgit/cache.h')
-rw-r--r--cgit/cache.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/cgit/cache.h b/cgit/cache.h
new file mode 100644
index 0000000000..470da4fc15
--- /dev/null
+++ b/cgit/cache.h
@@ -0,0 +1,37 @@
+/*
+ * Since git has it's own cache.h which we include,
+ * lets test on CGIT_CACHE_H to avoid confusion
+ */
+
+#ifndef CGIT_CACHE_H
+#define CGIT_CACHE_H
+
+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 */