/* * 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 */