#include <ace/Caching_Strategies_T.h>
template<class ATTRIBUTES, class CACHING_UTILITY> class ACE_LRU_Caching_Strategy {
public:typedef ATTRIBUTES CACHING_ATTRIBUTES;ACE_LRU_Caching_Strategy (void);ATTRIBUTES attributes (void);double purge_percent (void);void purge_percent (double percentage);int notify_bind (int result, const ATTRIBUTES &attr);int notify_find (int result, ATTRIBUTES &attr);int notify_unbind (int result, const ATTRIBUTES &attr);int notify_trybind (int result, ATTRIBUTES &attr);int notify_rebind (int result, const ATTRIBUTES &attr);CACHING_UTILITY &caching_utility (void);void dump (void) const;private:ATTRIBUTES timer_;double purge_percent_;CACHING_UTILITY caching_utility_;};
Explanation of the template parameter list:
CONTAINER is any map with entries of type KEY, VALUE.
The ATTRIBUTES are the deciding factor for purging of entries
and should logically be included with the VALUE. Some ways of
doing this are: As being a member of the VALUE or VALUE being
ACE_Pairx, ATTRIBUTES. The CACHING_UTILITY is the
class which can be plugged in and which decides the entries
to purge.
ACE_LRU_Caching_Strategy (void);
container is the map in which the entries reside. The
timer attribute is initialed to zero in this constructor. And
the purge_percent field denotes the percentage of the entries
in the cache which can be purged automagically and by default is
set to 10%.
ATTRIBUTES attributes (void);
double purge_percent (void);
void purge_percent (double percentage);
= Strategy related Operations
int notify_bind (int result, const ATTRIBUTES &attr);
int notify_find (int result, ATTRIBUTES &attr);
int notify_unbind (int result, const ATTRIBUTES &attr);
int notify_trybind (int result, ATTRIBUTES &attr);
int notify_rebind (int result, const ATTRIBUTES &attr);
CACHING_UTILITY &caching_utility (void);
void dump (void) const;
kirthika@cs.wustl.edu