dune-common  2.6-git
Public Types | Public Member Functions | List of all members
Dune::lru< _Key, _Tp, _Traits > Class Template Reference

LRU Cache Container. More...

#include <dune/common/lru.hh>

Public Types

typedef _Traits::key_type key_type
 
typedef allocator::value_type value_type
 
typedef allocator::pointer pointer
 
typedef allocator::const_pointer const_pointer
 
typedef allocator::const_reference const_reference
 
typedef allocator::reference reference
 
typedef allocator::size_type size_type
 
typedef list_type::iterator iterator
 
typedef list_type::const_iterator const_iterator
 

Public Member Functions

reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back (int i) const
 
void pop_front ()
 Removes the first element. More...
 
void pop_back ()
 Removes the last element. More...
 
iterator find (const key_type &key)
 Finds the element whose key is k. More...
 
const_iterator find (const key_type &key) const
 Finds the element whose key is k. More...
 
reference insert (const key_type &key, const_reference data)
 Insert a value into the container. More...
 
reference insert (const key_type &key)
 mark data associated with key as most recent More...
 
reference touch (const key_type &key)
 mark data associated with key as most recent More...
 
size_type size () const
 Retrieve number of entries in the container. More...
 
void resize (size_type new_size)
 ensure a maximum size of the container More...
 
void clear ()
 

Detailed Description

template<typename _Key, typename _Tp, typename _Traits = _lru_default_traits<_Key, _Tp>>
class Dune::lru< _Key, _Tp, _Traits >

LRU Cache Container.

Implementation of an LRU (least recently used) cache container. This implementation follows the approach presented in http://aim.adc.rmit.edu.au/phd/sgreuter/papers/graphite2003.pdf

Member Typedef Documentation

◆ const_iterator

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
typedef list_type::const_iterator Dune::lru< _Key, _Tp, _Traits >::const_iterator

◆ const_pointer

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
typedef allocator::const_pointer Dune::lru< _Key, _Tp, _Traits >::const_pointer

◆ const_reference

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
typedef allocator::const_reference Dune::lru< _Key, _Tp, _Traits >::const_reference

◆ iterator

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
typedef list_type::iterator Dune::lru< _Key, _Tp, _Traits >::iterator

◆ key_type

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
typedef _Traits::key_type Dune::lru< _Key, _Tp, _Traits >::key_type

◆ pointer

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
typedef allocator::pointer Dune::lru< _Key, _Tp, _Traits >::pointer

◆ reference

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
typedef allocator::reference Dune::lru< _Key, _Tp, _Traits >::reference

◆ size_type

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
typedef allocator::size_type Dune::lru< _Key, _Tp, _Traits >::size_type

◆ value_type

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
typedef allocator::value_type Dune::lru< _Key, _Tp, _Traits >::value_type

Member Function Documentation

◆ back() [1/2]

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
reference Dune::lru< _Key, _Tp, _Traits >::back ( )
inline

Returns a read/write reference to the data of the least recently used entry.

◆ back() [2/2]

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
const_reference Dune::lru< _Key, _Tp, _Traits >::back ( int  i) const
inline

Returns a read-only (constant) reference to the data of the least recently used entry.

◆ clear()

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
void Dune::lru< _Key, _Tp, _Traits >::clear ( )
inline

◆ find() [1/2]

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
iterator Dune::lru< _Key, _Tp, _Traits >::find ( const key_type key)
inline

Finds the element whose key is k.

Returns
iterator

◆ find() [2/2]

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
const_iterator Dune::lru< _Key, _Tp, _Traits >::find ( const key_type key) const
inline

Finds the element whose key is k.

Returns
const_iterator

◆ front() [1/2]

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
reference Dune::lru< _Key, _Tp, _Traits >::front ( )
inline

Returns a read/write reference to the data of the most recently used entry.

◆ front() [2/2]

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
const_reference Dune::lru< _Key, _Tp, _Traits >::front ( ) const
inline

Returns a read-only (constant) reference to the data of the most recently used entry.

◆ insert() [1/2]

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
reference Dune::lru< _Key, _Tp, _Traits >::insert ( const key_type key)
inline

mark data associated with key as most recent

Returns
reference of stored data

◆ insert() [2/2]

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
reference Dune::lru< _Key, _Tp, _Traits >::insert ( const key_type key,
const_reference  data 
)
inline

Insert a value into the container.

Stores value under key and marks it as most recent. If this key is already present, the associated data is replaced.

Parameters
keyassociated with data
datato store
Returns
reference of stored data

◆ pop_back()

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
void Dune::lru< _Key, _Tp, _Traits >::pop_back ( )
inline

Removes the last element.

◆ pop_front()

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
void Dune::lru< _Key, _Tp, _Traits >::pop_front ( )
inline

Removes the first element.

◆ resize()

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
void Dune::lru< _Key, _Tp, _Traits >::resize ( size_type  new_size)
inline

ensure a maximum size of the container

If new_size is smaller than size the oldest elements are dropped. Otherwise nothing happens.

◆ size()

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
size_type Dune::lru< _Key, _Tp, _Traits >::size ( ) const
inline

Retrieve number of entries in the container.

◆ touch()

template<typename _Key , typename _Tp , typename _Traits = _lru_default_traits<_Key, _Tp>>
reference Dune::lru< _Key, _Tp, _Traits >::touch ( const key_type key)
inline

mark data associated with key as most recent

Returns
reference of stored data

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