#include <eckit/container/CacheLRU.h>
template<typename K, typename V>
CacheLRU class
Public types
- struct Entry
- using key_type = K
- using value_type = V
- using entry_type = Entry
-
using storage_type = std::
list<entry_ type> - using storage_iterator = storage_type::iterator
-
using map_type = std::
map<key_type, storage_iterator> - using purge_handler_type = void(*)(key_type&, value_type&)
Constructors, destructors, conversion operators
Public functions
- auto insert(const key_type& key, const value_type& value) -> bool
- auto access(const key_type& key) -> value_type
- auto extract(const key_type& key) -> value_type
- auto remove(const key_type& key) -> bool
- auto exists(const key_type& key) const -> bool
- void clear()
- Clears all entries in the cache.
- auto capacity() const -> size_t
- auto size() const -> size_t
- void capacity(size_t size)
- resizes the cache capacity
-
void print(std::
ostream& os) const
Friends
-
auto operator<<(std::
ostream& s, const CacheLRU& p) -> std:: ostream&
Function documentation
template<typename K, typename V>
bool eckit:: CacheLRU<K, V>:: insert(const key_type& key,
const value_type& value)
Returns | true if a key already existed |
---|
Inserts an entry into the cache, overwrites if already exists
template<typename K, typename V>
value_type eckit:: CacheLRU<K, V>:: access(const key_type& key)
Exceptions | |
---|---|
OutOfRange | exception is key not in cache |
Accesses a key that must already exist
template<typename K, typename V>
value_type eckit:: CacheLRU<K, V>:: extract(const key_type& key)
Exceptions | |
---|---|
OutOfRange | exception if key not in cache |
Extracts the key from the cache without purging
template<typename K, typename V>
bool eckit:: CacheLRU<K, V>:: remove(const key_type& key)
Returns | true if removed |
---|
Remove a key-value pair from the cache No effect if key is not present
template<typename K, typename V>
bool eckit:: CacheLRU<K, V>:: exists(const key_type& key) const
Returns | true if the key exists in the cache |
---|
template<typename K, typename V>
size_t eckit:: CacheLRU<K, V>:: capacity() const
Returns | the maximum size of the cache |
---|
template<typename K, typename V>
size_t eckit:: CacheLRU<K, V>:: size() const
Returns | the current (used) size of the cache |
---|