template class Poco::LRUCache
An LRUCache implements Least Recently Used caching. The default size for a cache is 1024 entries.
#include <LRUCache.h> template < class TKey, class TValue, class TMutex = FastMutex, class TEventMutex = FastMutex > class LRUCache: public Poco::AbstractCache { public: // construction LRUCache(long size = 1024); };
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();