2008-03-27 09:22:13 +01:00
|
|
|
/*
|
|
|
|
* 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
|
|
|
|
|
2014-01-15 21:53:15 +01:00
|
|
|
typedef void (*cache_fill_fn)(void);
|
2008-03-27 09:22:13 +01:00
|
|
|
|
2008-04-28 11:32:42 +02:00
|
|
|
|
|
|
|
/* 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
|
2017-10-14 21:05:51 +02:00
|
|
|
* 0 indicates success, everything else is an error
|
2008-04-28 11:32:42 +02:00
|
|
|
*/
|
|
|
|
extern int cache_process(int size, const char *path, const char *key, int ttl,
|
2014-01-15 21:53:15 +01:00
|
|
|
cache_fill_fn fn);
|
2008-04-28 11:32:42 +02:00
|
|
|
|
|
|
|
|
2008-04-28 12:10:13 +02:00
|
|
|
/* List info about all cache entries on stdout */
|
|
|
|
extern int cache_ls(const char *path);
|
|
|
|
|
2008-04-28 11:32:42 +02:00
|
|
|
/* Print a message to stdout */
|
2010-09-04 17:09:57 +02:00
|
|
|
__attribute__((format (printf,1,2)))
|
2008-04-28 11:32:42 +02:00
|
|
|
extern void cache_log(const char *format, ...);
|
2008-03-27 09:22:13 +01:00
|
|
|
|
2009-08-19 17:43:47 +02:00
|
|
|
extern unsigned long hash_str(const char *str);
|
|
|
|
|
2008-03-27 09:22:13 +01:00
|
|
|
#endif /* CGIT_CACHE_H */
|