template class Poco::AccessExpireStrategy

Overview

An AccessExpireStrategy implements time and access based expiration of cache entries. Moreā€¦

#include <AccessExpireStrategy.h>

template <
    class TKey,
    class TValue
    >
class AccessExpireStrategy: public Poco::ExpireStrategy
{
public:
    // construction

    AccessExpireStrategy(Timestamp::TimeDiff expireTimeInMilliSec);

    // methods

    virtual
    void
    onGet(
        const void* pSender,
        const TKey& key
        );
};

Inherited Members

public:
    // typedefs

    typedef std::multimap<Timestamp, TKey> TimeIndex;
    typedef TimeIndex::iterator IndexIterator;
    typedef TimeIndex::const_iterator ConstIndexIterator;
    typedef std::map<TKey, IndexIterator> Keys;
    typedef Keys::iterator Iterator;

    // 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;

    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

    Timestamp::TimeDiff _expireTime;
    Keys _keys;
    TimeIndex _keyIndex;

Detailed Documentation

An AccessExpireStrategy implements time and access based expiration of cache entries.

Construction

AccessExpireStrategy(Timestamp::TimeDiff expireTimeInMilliSec)

Create an expire strategy.

Note that the smallest allowed caching time is 25ms. Anything lower than that is not useful with current operating systems.

Methods

virtual
void
onGet(
    const void* pSender,
    const TKey& key
    )

Informs the strategy that a read-access happens to an element.