template class Poco::StrategyCollection
Overview
An StrategyCollection is a decorator masking n collections as a single one. Moreā¦
#include <StrategyCollection.h> template < class TKey, class TValue > class StrategyCollection: public Poco::AbstractStrategy { public: // typedefs typedef std::vector<SharedPtr<AbstractStrategy<TKey, TValue>>> Strategies; typedef Strategies::iterator Iterator; typedef Strategies::const_iterator ConstIterator; // methods void pushBack(AbstractStrategy<TKey, TValue>* pStrat); void popBack(); virtual void onAdd( const void* pSender, const KeyValueArgs<TKey, TValue>& key ); virtual void onRemove( const void* pSender, const TKey& key ); virtual void onGet( const void* pSender, const TKey& key ); virtual void onClear( const void* pSender, const EventArgs& args ); virtual void onIsValid( const void* pSender, ValidArgs<TKey>& key ); virtual void onReplace( const void* pSender, std::set<TKey>& elemsToRemove ); protected: // fields Strategies _strategies; };
Inherited Members
public: // methods virtual void onUpdate( const void* pSender, const KeyValueArgs<TKey, TValue>& args ); virtual void onAdd( const void* pSender, const KeyValueArgs<TKey, TValue>& key ) = 0; virtual void onRemove( const void* pSender, const TKey& key ) = 0; virtual void onGet( const void* pSender, const TKey& key ) = 0; virtual void onClear( const void* pSender, const EventArgs& args ) = 0; virtual void onIsValid( const void* pSender, ValidArgs<TKey>& key ) = 0; virtual void onReplace( const void* pSender, std::set<TKey>& elemsToRemove ) = 0;
Detailed Documentation
An StrategyCollection is a decorator masking n collections as a single one.
Methods
void pushBack(AbstractStrategy<TKey, TValue>* pStrat)
Adds an AbstractStrategy to the collection. Class takes ownership of pointer.
void popBack()
Removes the last added AbstractStrategy from the collection.
virtual void onAdd( const void* pSender, const KeyValueArgs<TKey, TValue>& key )
Adds the key to the strategy.
If for the key already an entry exists, it will be overwritten.
virtual void onRemove( const void* pSender, const TKey& key )
Removes an entry from the strategy.
If the entry is not found the remove is ignored.
virtual void onGet( const void* pSender, const TKey& key )
Informs the strategy that a read-access happens to an element.
virtual void onClear( const void* pSender, const EventArgs& args )
Removes all elements from the cache.
virtual void onIsValid( const void* pSender, ValidArgs<TKey>& key )
Used to query if a key is still valid (i.e. cached).
virtual void onReplace( const void* pSender, std::set<TKey>& elemsToRemove )
Used by the Strategy to indicate which elements should be removed from the cache.
Note that onReplace does not change the current list of keys. The cache object is reponsible to remove the elements.