Poco

template < class TKey, class TValue >

class LRUStrategy

Library: Foundation
Package: Cache
Header: Poco/LRUStrategy.h

Description

An LRUStrategy implements least recently used cache replacement.

Inheritance

Direct Base Classes: AbstractStrategy < TKey, TValue >

All Base Classes: AbstractStrategy < TKey, TValue >

Member Summary

Member Functions: onAdd, onClear, onGet, onIsValid, onRemove, onReplace

Types Aliases

ConstIndexIterator

using ConstIndexIterator = typename KeyIndex::const_iterator;

ConstIterator

using ConstIterator = typename Keys::const_iterator;

IndexIterator

using IndexIterator = typename KeyIndex::iterator;

Iterator

using Iterator = typename Keys::iterator;

KeyIndex

using KeyIndex = std::map < TKey, Iterator >;

Keys

using Keys = std::list < TKey >;

Constructors

LRUStrategy inline

LRUStrategy(
    std::size_t size
);

Destructor

~LRUStrategy

~LRUStrategy() = default;

Member Functions

onAdd inline

void onAdd(
    const void * param280,
    const KeyValueArgs < TKey, TValue > & args
);

onClear inline

void onClear(
    const void * param283,
    const EventArgs & args
);

onGet inline

void onGet(
    const void * param282,
    const TKey & key
);

onIsValid inline

void onIsValid(
    const void * param284,
    ValidArgs < TKey > & args
);

onRemove inline

void onRemove(
    const void * param281,
    const TKey & key
);

onReplace inline

void onReplace(
    const void * param285,
    std::set < TKey > & elemsToRemove
);

Variables

_keyIndex protected

KeyIndex _keyIndex;

For faster access to _keys

_keys protected

Keys _keys;

_size protected

std::size_t _size;

Number of keys the cache can store.