Caches 0.1.0
LRU/LFU/FIFO Caches library
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
caches::FIFOCachePolicy< Key > Class Template Reference

FIFO (First in, first out) cache policy. More...

#include <fifo_cache_policy.hpp>

Inheritance diagram for caches::FIFOCachePolicy< Key >:
Inheritance graph
[legend]
Collaboration diagram for caches::FIFOCachePolicy< Key >:
Collaboration graph
[legend]

Public Types

using fifo_iterator = typename std::list< Key >::const_iterator
 

Public Member Functions

void Insert (const Key &key) override
 Handle element insertion in a cache.
 
void Touch (const Key &key) noexcept override
 Handle request to the key-element in a cache.
 
void Erase (const Key &key) noexcept override
 Handle element deletion from a cache.
 
const Key & ReplCandidate () const noexcept override
 Return a key of a replacement candidate.
 
virtual void Insert (const Key &key)=0
 Handle element insertion in a cache.
 
virtual void Touch (const Key &key)=0
 Handle request to the key-element in a cache.
 
virtual void Erase (const Key &key)=0
 Handle element deletion from a cache.
 
virtual const Key & ReplCandidate () const =0
 Return a key of a replacement candidate.
 

Detailed Description

template<typename Key>
class caches::FIFOCachePolicy< Key >

FIFO (First in, first out) cache policy.

FIFO policy in the case of replacement removes the first added element.

That is, consider the following key adding sequence:

A -> B -> C -> ...

In the case a cache reaches its capacity, the FIFO replacement candidate policy returns firstly added element A. To show that:

# New key: X
Initial state: A -> B -> C -> ...
Replacement candidate: A
Final state: B -> C -> ... -> X -> ...

An so on, the next candidate will be B, then C, etc.

Template Parameters
KeyType of a key a policy works with

Member Function Documentation

◆ Erase()

template<typename Key >
void caches::FIFOCachePolicy< Key >::Erase ( const Key &  key)
inlineoverridevirtualnoexcept

Handle element deletion from a cache.

Parameters
[in]keyKey that should be used by the policy

Implements caches::ICachePolicy< Key >.

◆ Insert()

template<typename Key >
void caches::FIFOCachePolicy< Key >::Insert ( const Key &  key)
inlineoverridevirtual

Handle element insertion in a cache.

Parameters
[in]keyKey that should be used by the policy

Implements caches::ICachePolicy< Key >.

◆ ReplCandidate()

template<typename Key >
const Key & caches::FIFOCachePolicy< Key >::ReplCandidate ( ) const
inlineoverridevirtualnoexcept

Return a key of a replacement candidate.

Returns
Replacement candidate according to selected policy

Implements caches::ICachePolicy< Key >.

◆ Touch()

template<typename Key >
void caches::FIFOCachePolicy< Key >::Touch ( const Key &  key)
inlineoverridevirtualnoexcept

Handle request to the key-element in a cache.

Parameters
key

Implements caches::ICachePolicy< Key >.


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