blob: 93928368172a00c6261a711bc1b9912dc903c065 [file] [log] [blame]
Lars Hjemliee4056b2008-03-27 09:22:13 +01001/*
2 * Since git has it's own cache.h which we include,
3 * lets test on CGIT_CACHE_H to avoid confusion
4 */
5
6#ifndef CGIT_CACHE_H
7#define CGIT_CACHE_H
8
Lukas Fleischerf60ffa12014-01-15 21:53:15 +01009typedef void (*cache_fill_fn)(void);
Lars Hjemliee4056b2008-03-27 09:22:13 +010010
Lars Hjemli939d32f2008-04-28 11:32:42 +020011
12/* Print cached content to stdout, generate the content if necessary.
13 *
14 * Parameters
15 * size max number of cache files
16 * path directory used to store cache files
17 * key the key used to lookup cache files
18 * ttl max cache time in seconds for this key
19 * fn content generator function for this key
Lars Hjemli939d32f2008-04-28 11:32:42 +020020 *
21 * Return value
22 * 0 indicates success, everyting else is an error
23 */
24extern int cache_process(int size, const char *path, const char *key, int ttl,
Lukas Fleischerf60ffa12014-01-15 21:53:15 +010025 cache_fill_fn fn);
Lars Hjemli939d32f2008-04-28 11:32:42 +020026
27
Lars Hjemli9000bbf2008-04-28 12:10:13 +020028/* List info about all cache entries on stdout */
29extern int cache_ls(const char *path);
30
Lars Hjemli939d32f2008-04-28 11:32:42 +020031/* Print a message to stdout */
Mark Lodatoa4c58d92010-09-04 11:09:57 -040032__attribute__((format (printf,1,2)))
Lars Hjemli939d32f2008-04-28 11:32:42 +020033extern void cache_log(const char *format, ...);
Lars Hjemliee4056b2008-03-27 09:22:13 +010034
Lars Hjemli523a2162009-08-19 17:43:47 +020035extern unsigned long hash_str(const char *str);
36
Lars Hjemliee4056b2008-03-27 09:22:13 +010037#endif /* CGIT_CACHE_H */