diff options
Diffstat (limited to 'src/cache/cache.c')
-rw-r--r-- | src/cache/cache.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/cache/cache.c b/src/cache/cache.c index 8c820fb..186450c 100644 --- a/src/cache/cache.c +++ b/src/cache/cache.c @@ -1,6 +1,36 @@ /* ISC license. */ +#include <skalibs/uint64.h> +#include <skalibs/posixplz.h> +#include <skalibs/strerr.h> + #include <shibari/dcache.h> #include "shibari-cache-internal.h" -dcache_t cache = DCACHE_ZERO ; +static dcache_t cache = DCACHE_ZERO ; + +void cache_init (uint64_t cachesize) +{ + dcache_init(&cache, cachesize) ; +} + +void cache_dump (void) +{ + if (g->dumpfile) + { + if (!dcache_save(&cache, g->dumpfile)) + { + strerr_warnwu2sys("save cache contents to ", g->dumpfile) ; + unlink_void(file) ; + } + } +} + +void cache_load (void) +{ + if (g->dumpfile) + { + if (!dcache_load(&cache, g->dumpfile)) + strerr_warnwu2sys("load cache contents from ", g->dumpfile) ; + } +} |