template class Poco::ExpireLRUCache
Overview
An ExpireLRUCache combines LRU caching and time based expire caching. Moreā¦
#include <ExpireLRUCache.h> template < class TKey, class TValue, class TMutex = FastMutex, class TEventMutex = FastMutex > class ExpireLRUCache: public Poco::AbstractCache { public: // construction ExpireLRUCache( long cacheSize = 1024, Timestamp::TimeDiff expire = 600000 ); };
Inherited Members
public: // typedefs typedef std::map<TKey, SharedPtr<TValue>> DataHolder; typedef DataHolder::iterator Iterator; typedef DataHolder::const_iterator ConstIterator; typedef std::set<TKey> KeySet; // fields FIFOEvent<const KeyValueArgs<TKey, TValue>, TEventMutex> Add; FIFOEvent<const KeyValueArgs<TKey, TValue>, TEventMutex> Update; FIFOEvent<const TKey, TEventMutex> Remove; FIFOEvent<const TKey, TEventMutex> Get; FIFOEvent<const EventArgs, TEventMutex> Clear; // methods void add( const TKey& key, const TValue& val ); void update( const TKey& key, const TValue& val ); void add( const TKey& key, SharedPtr<TValue> val ); void update( const TKey& key, SharedPtr<TValue> val ); void remove(const TKey& key); bool has(const TKey& key) const; SharedPtr<TValue> get(const TKey& key); void clear(); std::size_t size(); void forceReplace(); std::set<TKey> getAllKeys(); protected: // fields FIFOEvent<ValidArgs<TKey>> IsValid; FIFOEvent<KeySet> Replace; TStrategy _strategy; DataHolder _data; TMutex _mutex; // methods void initialize(); void uninitialize(); void doAdd( const TKey& key, const TValue& val ); void doAdd( const TKey& key, SharedPtr<TValue>& val ); void doUpdate( const TKey& key, const TValue& val ); void doUpdate( const TKey& key, SharedPtr<TValue>& val ); void doRemove(Iterator it); bool doHas(const TKey& key) const; SharedPtr<TValue> doGet(const TKey& key); void doClear(); void doReplace();
Detailed Documentation
An ExpireLRUCache combines LRU caching and time based expire caching.
It cache entries for a fixed time period (per default 10 minutes) but also limits the size of the cache (per default: 1024).