Public Member Functions | Private Attributes | List of all members
quori_face::Cache< K, V > Class Template Reference

A simple memoization object that eliminates repetitive computations. More...

#include <Cache.hpp>

Public Member Functions

 Cache (const std::size_t size=5UL)
 
const V & getOrCompute (const K &key, const std::function< V(const K &k)> &f)
 

Private Attributes

std::deque< std::pair< K, V > > entries_
 
std::mutex mut_
 
std::size_t size_
 

Detailed Description

template<typename K, typename V>
class quori_face::Cache< K, V >

A simple memoization object that eliminates repetitive computations.

Template Parameters
KThe key type
VThe value type

Definition at line 20 of file Cache.hpp.

Constructor & Destructor Documentation

◆ Cache()

template<typename K , typename V >
quori_face::Cache< K, V >::Cache ( const std::size_t  size = 5UL)
inline

Definition at line 28 of file Cache.hpp.

Member Function Documentation

◆ getOrCompute()

template<typename K , typename V >
quori_face::Cache< K, V >::getOrCompute ( const K &  key,
const std::function< V(const K &k)> &  f 
)
inline

Get a value, either from cache, or by executing the function f.

Parameters
[in]keyThe key to lookup
[in]fThe function to execute to generate the value if not found in the cache

Definition at line 41 of file Cache.hpp.

Member Data Documentation

◆ entries_

template<typename K , typename V >
std::deque<std::pair<K, V> > quori_face::Cache< K, V >::entries_
private

Definition at line 57 of file Cache.hpp.

◆ mut_

template<typename K , typename V >
std::mutex quori_face::Cache< K, V >::mut_
mutableprivate

Definition at line 56 of file Cache.hpp.

◆ size_

template<typename K , typename V >
std::size_t quori_face::Cache< K, V >::size_
private

Definition at line 58 of file Cache.hpp.


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


quori_face
Author(s):
autogenerated on Wed Mar 2 2022 00:53:20