Include file:

#include "mcrl2/utilities/fixed_size_cache.h
class mcrl2::utilities::fixed_size_cache

A cache keeps track of key-value pairs similar to a map. The difference is that a cache has (an optional) maximum size and a policy that determines what element gets evicted when the cache is full.

Works with arbirary maps that implement the unordered_map interface.

Public types

type mcrl2::utilities::fixed_size_cache::const_iterator

typedef for typename Policy::map_type::const_iterator

type mcrl2::utilities::fixed_size_cache::iterator

typedef for typename Policy::map_type::iterator

type mcrl2::utilities::fixed_size_cache::key_type

typedef for typename Policy::key_type

Protected attributes

Policy::map_type mcrl2::utilities::fixed_size_cache::m_map

The underlying mapping from keys to their cached results.

std::size_t mcrl2::utilities::fixed_size_cache::m_maximum_size

The maximum number of elements to cache.

Policy mcrl2::utilities::fixed_size_cache::m_policy

The replacement policy for keys in the cache.

Public member functions

const_iterator begin() const
void clear()
std::size_t count(const key_type &key) const
std::pair<iterator, bool> emplace(Args&&... args)

Stores the given key-value pair in the cache. Depending on the cache policy and capacity an existing element might be removed.

const_iterator end() const
iterator find(const key_type &key)
fixed_size_cache(std::size_t max_size = 1024)