#include <ace/Caching_Utility_T.h>
template<class KEY, class VALUE, class CONTAINER, class ITERATOR, class ATTRIBUTES> class ACE_Handler_Caching_Utility {
public:
typedef ACE_Handler_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY; typedef ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY_BASE;ACE_Handler_Caching_Utility ( ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0, int delete_cleanup_strategy = 0 );
~ACE_Handler_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_BASE *cleanup_strategy_;
int delete_cleanup_strategy_;
};
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, HANDLER
kind where the HANDLER
contains the caching attributes which help 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.
typedef ACE_Handler_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY;
typedef ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> CLEANUP_STRATEGY_BASE;
ACE_Handler_Caching_Utility (
ACE_Cleanup_Strategy<KEY, VALUE, CONTAINER> *cleanup_strategy = 0,
int delete_cleanup_strategy = 0
);
~ACE_Handler_Caching_Utility (void);
int clear_cache (CONTAINER &container, double purge_percent);
container
. The Cleanup_Strategy will do
the actual job of cleanup once the entries to be cleaned up are
decided.
void minimum (
CONTAINER &container,
KEY *&key_to_remove,
VALUE *&value_to_remove
);
CLEANUP_STRATEGY_BASE *cleanup_strategy_;
int delete_cleanup_strategy_;
kirthika@cs.wustl.edu