37 lines
		
	
	
	
		
			982 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			982 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * 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 */
 |