#include <ace/Caching_Strategies_T.h>
template<class ATTRIBUTES, class CACHING_UTILITY> class ACE_FIFO_Caching_Strategy {
public:
typedef ATTRIBUTES CACHING_ATTRIBUTES;
ACE_FIFO_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 order_;
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_FIFO_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