tlx
|
This is an expected O(1) LRU cache which contains a set of key-only elements. More...
#include <lru_cache.hpp>
Public Member Functions | |
LruCacheSet (const Alloc &alloc=Alloc()) | |
void | clear () |
clear LRU More... | |
void | put (const Key &key) |
put or replace/touch item in LRU cache More... | |
void | touch (const Key &key) |
touch value from LRU cache for key. More... | |
bool | touch_if_exists (const Key &key) noexcept |
touch value from LRU cache for key. More... | |
void | erase (const Key &key) |
remove key from LRU cache More... | |
bool | erase_if_exists (const Key &key) noexcept |
remove key from LRU cache More... | |
bool | exists (const Key &key) const |
test if key exists in LRU cache More... | |
size_t | size () const noexcept |
return number of items in LRU cache More... | |
Key | pop () |
return the least recently used key value pair More... | |
Protected Types | |
using | List = typename std::list< Key, Alloc > |
using | ListIterator = typename List::iterator |
using | Map = typename std::unordered_map< Key, ListIterator, std::hash< Key >, std::equal_to< Key >, typename Alloc::template rebind< std::pair< const Key, ListIterator > >::other > |
Private Attributes | |
List | list_ |
list of entries in least-recently used order. More... | |
Map | map_ |
map for accelerated access to keys More... | |
This is an expected O(1) LRU cache which contains a set of key-only elements.
Elements can be put() into LRU cache, and tested for existence using exists(). Insertion and touch() will remark the elements as most recently used, pushing all other back in priority. The LRU cache itself does not limit the number of items, because it has no eviction mechanism. Instead, the user program must check size() after an insert and may extract the least recently used element.
Definition at line 42 of file lru_cache.hpp.
|
protected |
Definition at line 45 of file lru_cache.hpp.
|
protected |
Definition at line 46 of file lru_cache.hpp.
|
protected |
Definition at line 51 of file lru_cache.hpp.
|
inlineexplicit |
Definition at line 54 of file lru_cache.hpp.
|
inline |
clear LRU
Definition at line 59 of file lru_cache.hpp.
|
inline |
remove key from LRU cache
Definition at line 102 of file lru_cache.hpp.
|
inlinenoexcept |
remove key from LRU cache
Definition at line 114 of file lru_cache.hpp.
|
inline |
test if key exists in LRU cache
Definition at line 125 of file lru_cache.hpp.
|
inline |
return the least recently used key value pair
Definition at line 135 of file lru_cache.hpp.
|
inline |
put or replace/touch item in LRU cache
Definition at line 65 of file lru_cache.hpp.
|
inlinenoexcept |
return number of items in LRU cache
Definition at line 130 of file lru_cache.hpp.
|
inline |
touch value from LRU cache for key.
Definition at line 80 of file lru_cache.hpp.
|
inlinenoexcept |
touch value from LRU cache for key.
Definition at line 92 of file lru_cache.hpp.
|
private |
list of entries in least-recently used order.
Definition at line 147 of file lru_cache.hpp.
|
private |
map for accelerated access to keys
Definition at line 149 of file lru_cache.hpp.