## NAME

ACE_Pair_Caching_Utility - Defines a helper class for the Caching Strategies.

## SYNOPSIS

    #include <ace/Caching_Utility_T.h>

    template<class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES>
    class ACE_Pair_Caching_Utility
    {
      public:
            typedef ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY;

        ACE_Pair_Caching_Utility (
            ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
            int delete_cleanup_strategy = 0
            );
        ~ACE_Pair_Caching_Utility (void);
        int clear_cache (CONTAINER &container, double purge_percent);
      protected:
        void minimum (
            CONTAINER &container,
            KEY *&key_to_remove,
            VALUE *&value_to_remove
            );
        CLEANUP_STRATEGY *cleanup_strategy_;
        int delete_cleanup_strategy_;
    };

## DESCRIPTION

This class defines the methods commonly used by the different caching strategies. For instance: clear_cache () method which decides and purges the entry from the container. Note: This class helps in the caching_strategies using a container containing entries of `KEY, ACE_Pair`VALUE, attributes`> kind. The attributes helps in deciding the entries to be purged. The Cleanup_Strategy is the callback class to which the entries to be cleaned up will be delegated.

## PUBLIC MEMBERS

    typedef ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY;

    ACE_Pair_Caching_Utility (
        ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
        int delete_cleanup_strategy = 0
        );

    ~ACE_Pair_Caching_Utility (void);

Destructor.

    int clear_cache (CONTAINER &container, double purge_percent);

## PROTECTED MEMBERS

    void minimum (
        CONTAINER &container,
        KEY *&key_to_remove,
        VALUE *&value_to_remove
        );

Find the entry with minimum caching attributes.

    CLEANUP_STRATEGY *cleanup_strategy_;

The cleanup strategy which can be used to destroy the entries of the container.

    int delete_cleanup_strategy_;

Whether the cleanup_strategy should be destroyed or not.

## AUTHOR

Kirthika Parameswaran `kirthika@cs.wustl.edu`

## LIBRARY

ace`