solidc
Robust collection of general-purpose cross-platform C libraries and data structures designed for rapid and safe development in C
Loading...
Searching...
No Matches
cache.h
Go to the documentation of this file.
1
6#ifndef CACHE_H
7#define CACHE_H
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13#include <stdbool.h>
14#include <stddef.h>
15#include <stdint.h>
16
17#define CACHE_SHARD_COUNT 32
18#define CACHE_DEFAULT_TTL 300
19
25typedef struct cache_s cache_t;
26
33cache_t* cache_create(size_t capacity, uint32_t default_ttl);
34
40void cache_destroy(cache_t* cache);
41
51const void* cache_get(cache_t* cache, const char* key, size_t key_len, size_t* out_len);
52
57void cache_release(const void* ptr);
58
68bool cache_set(cache_t* cache, const char* key, size_t key_len, const void* value, size_t value_len,
69 uint32_t ttl_override);
70
74void cache_invalidate(cache_t* cache, const char* key);
75
79void cache_clear(cache_t* cache);
80
87size_t get_total_cache_size(cache_t* cache);
88
96size_t get_total_capacity(cache_t* cache);
97
108bool cache_save(cache_t* cache_ptr, const char* filename);
109
121bool cache_load(cache_t* cache_ptr, const char* filename);
122
123#ifdef __cplusplus
124}
125#endif
126
127#endif // CACHE_H
bool cache_load(cache_t *cache_ptr, const char *filename)
Definition cache.c:828
void cache_clear(cache_t *cache)
Definition cache.c:669
void cache_release(const void *ptr)
Definition cache.c:661
void cache_destroy(cache_t *cache)
Definition cache.c:434
size_t get_total_cache_size(cache_t *cache)
Definition cache.c:693
bool cache_set(cache_t *cache, const char *key, size_t key_len, const void *value, size_t value_len, uint32_t ttl_override)
Definition cache.c:550
bool cache_save(cache_t *cache_ptr, const char *filename)
Definition cache.c:752
const void * cache_get(cache_t *cache, const char *key, size_t key_len, size_t *out_len)
Definition cache.c:467
size_t get_total_capacity(cache_t *cache)
Definition cache.c:710
cache_t * cache_create(size_t capacity, uint32_t default_ttl)
Definition cache.c:391
struct cache_s cache_t
Definition cache.h:25
void cache_invalidate(cache_t *cache, const char *key)
Definition cache.c:630