// // Created by claunia on 2/10/22. // #ifndef LIBAARUFORMAT_LRU_H #define LIBAARUFORMAT_LRU_H #include #include struct CacheEntry { char *key; void *value; UT_hash_handle hh; }; struct CacheHeader { uint64_t max_items; struct CacheEntry *cache; }; /** * Finds an item in the specified cache * @param cache Pointer to the cache header * @param key Key * @return Value if found, NULL if not */ void *find_in_cache(struct CacheHeader *cache, char *key); /** * Adds an item to the specified cache * @param cache Pointer to the cache header * @param key Key * @param value Value */ void add_to_cache(struct CacheHeader *cache, char *key, void *value); /** * Finds an item in the specified cache using a 64-bit integer key * @param cache Pointer to the cache header * @param key Key * @return Value if found, NULL if not */ void *find_in_cache_uint64(struct CacheHeader *cache, uint64_t key); /** * Adds an item to the specified cache using a 64-bit integer key * @param cache Pointer to the cache header * @param key Key * @param value Value */ void add_to_cache_uint64(struct CacheHeader *cache, uint64_t key, void *value); #endif // LIBAARUFORMAT_LRU_H