Luanti 5.17.0-dev
Loading...
Searching...
No Matches
LRUCache< K, V > Class Template Reference

#include <container.h>

Collaboration diagram for LRUCache< K, V >:

Public Member Functions

 LRUCache (size_t limit, void(*cache_miss)(void *data, const K &key, V *dest), void *data)
void setLimit (size_t limit)
void invalidate ()
const V * lookupCache (const K &key)

Private Types

typedef std::pair< typename std::list< K >::iterator, V > cache_entry
typedef std::map< K, cache_entrycache_type

Private Attributes

void(* m_cache_miss )(void *data, const K &key, V *dest)
void * m_cache_miss_data
size_t m_limit
cache_type m_map
std::list< K > m_queue

Member Typedef Documentation

◆ cache_entry

template<typename K, typename V>
typedef std::pair<typename std::list<K>::iterator, V> LRUCache< K, V >::cache_entry
private

◆ cache_type

template<typename K, typename V>
typedef std::map<K, cache_entry> LRUCache< K, V >::cache_type
private

Constructor & Destructor Documentation

◆ LRUCache()

template<typename K, typename V>
LRUCache< K, V >::LRUCache ( size_t limit,
void(* cache_miss )(void *data, const K &key, V *dest),
void * data )
inline

References m_cache_miss, m_cache_miss_data, and setLimit().

Here is the call graph for this function:

Member Function Documentation

◆ invalidate()

template<typename K, typename V>
void LRUCache< K, V >::invalidate ( )
inline

References m_map, and m_queue.

Referenced by setLimit().

Here is the caller graph for this function:

◆ lookupCache()

template<typename K, typename V>
const V * LRUCache< K, V >::lookupCache ( const K & key)
inline

◆ setLimit()

template<typename K, typename V>
void LRUCache< K, V >::setLimit ( size_t limit)
inline

References invalidate(), and m_limit.

Referenced by LRUCache().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ m_cache_miss

template<typename K, typename V>
void(* LRUCache< K, V >::m_cache_miss) (void *data, const K &key, V *dest)
private

Referenced by LRUCache(), and lookupCache().

◆ m_cache_miss_data

template<typename K, typename V>
void* LRUCache< K, V >::m_cache_miss_data
private

Referenced by LRUCache(), and lookupCache().

◆ m_limit

template<typename K, typename V>
size_t LRUCache< K, V >::m_limit
private

Referenced by lookupCache(), and setLimit().

◆ m_map

template<typename K, typename V>
cache_type LRUCache< K, V >::m_map
private

Referenced by invalidate(), and lookupCache().

◆ m_queue

template<typename K, typename V>
std::list<K> LRUCache< K, V >::m_queue
private

Referenced by invalidate(), and lookupCache().


The documentation for this class was generated from the following file: