NAME

ACE_Cache_Map_Manager - Defines a abstraction that will purge entries from a map.

SYNOPSIS

#include <ace/Cache_Map_Manager.h>

template<ACE_T1> class ACE_Cache_Map_Manager { public: typedef KEY key_type; typedef VALUE mapped_type; typedef MAP map_type; typedef CACHING_STRATEGY caching_strategy_type; typedef ITERATOR_IMPL ITERATOR_IMPLEMENTATION; typedef REVERSE_ITERATOR_IMPL REVERSE_ITERATOR_IMPLEMENTATION; friend class ACE_Cache_Map_Iterator<KEY, VALUE, ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>; friend class ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>; typedef ACE_Cache_Map_Iterator<KEY, VALUE, ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> ITERATOR; typedef ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> REVERSE_ITERATOR; typedef ITERATOR iterator; typedef REVERSE_ITERATOR reverse_iterator; typedef ACE_Pair<VALUE, ATTRIBUTES> CACHE_VALUE; ACE_Cache_Map_Manager ( CACHING_STRATEGY &caching_strategy, size_t size = ACE_DEFAULT_MAP_SIZE, ACE_Allocator *alloc = 0 ); virtual ~ACE_Cache_Map_Manager (void); int open ( size_t length = ACE_DEFAULT_MAP_SIZE, ACE_Allocator *alloc = 0 ); int close (void); int bind (const KEY &key, const VALUE &value); int find (const KEY &key, VALUE &value); int find (const KEY &key); int rebind (const KEY &key, const VALUE &value); int rebind (const KEY &key, const VALUE &value, VALUE &old_value); int rebind ( const KEY &key, const VALUE &value, KEY &old_key, VALUE &old_value ); int trybind (const KEY &key, VALUE &value); int unbind (const KEY &key); int unbind (const KEY &key, VALUE &value); int purge (void); size_t current_size (void) const; size_t total_size (void) const; void dump (void) const; ITERATOR begin (void); ITERATOR end (void); REVERSE_ITERATOR rbegin (void); REVERSE_ITERATOR rend (void); MAP &map (void); CACHING_STRATEGY &caching_strategy (void); protected: MAP map_; CACHING_STRATEGY &caching_strategy_; private: inline ACE_UNIMPLEMENTED_FUNC ( void operator= (const ACE_Cache_Map_Manager<ACE_T2> &) ); };

DESCRIPTION

The ACE_Cache_Map_Manager will manage the map it contains and provide purging on demand from the map. The strategy for caching is decided by the user and provided to the Cache Manager. The Cache Manager acts as a agent and communicates between the Map and the Strategy for purging entries from the map.

No locking mechanism provided since locking at this level isn't efficient. Locking has to be provided by the application.

Traits.

typedef KEY key_type;

typedef VALUE mapped_type;

typedef MAP map_type;

typedef CACHING_STRATEGY caching_strategy_type;

typedef ITERATOR_IMPL ITERATOR_IMPLEMENTATION;

typedef REVERSE_ITERATOR_IMPL REVERSE_ITERATOR_IMPLEMENTATION;

    friend class ACE_Cache_Map_Iterator<KEY, VALUE, ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>;
    

    friend class ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>;
    

ACE-style iterator typedefs.

    typedef ACE_Cache_Map_Iterator<KEY, VALUE, ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> ITERATOR;
    

    typedef ACE_Cache_Map_Reverse_Iterator<KEY, VALUE, REVERSE_ITERATOR_IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES> REVERSE_ITERATOR;
    

STL-style iterator typedefs.

typedef ITERATOR iterator;

typedef REVERSE_ITERATOR reverse_iterator;

typedef ACE_Pair<VALUE, ATTRIBUTES> CACHE_VALUE;

Initialization and termination methods.

ACE_Cache_Map_Manager (
    CACHING_STRATEGY &caching_strategy,
    size_t size = ACE_DEFAULT_MAP_SIZE,
    ACE_Allocator *alloc = 0
    );

virtual ~ACE_Cache_Map_Manager (void);

int open (
    size_t length = ACE_DEFAULT_MAP_SIZE,
    ACE_Allocator *alloc = 0
    );

int close (void);

int bind (const KEY &key, const VALUE &value);

int find (const KEY &key, VALUE &value);

int find (const KEY &key);

int rebind (const KEY &key, const VALUE &value);

int rebind (const KEY &key, const VALUE &value, VALUE &old_value);

int rebind (
    const KEY &key,
    const VALUE &value,
    KEY &old_key,
    VALUE &old_value
    );

int trybind (const KEY &key, VALUE &value);

int unbind (const KEY &key);

int unbind (const KEY &key, VALUE &value);

int purge (void);

size_t current_size (void) const;

size_t total_size (void) const;

void dump (void) const;

STL styled iterator factory functions.

ITERATOR begin (void);

ITERATOR end (void);

REVERSE_ITERATOR rbegin (void);

REVERSE_ITERATOR rend (void);

MAP &map (void);

CACHING_STRATEGY &caching_strategy (void);

Disallow these operations.

inline ACE_UNIMPLEMENTED_FUNC (
    void operator= (const ACE_Cache_Map_Manager<ACE_T2> &)
    );

AUTHOR

Kirthika Parameswaran kirthika@cs.wustl.edu

LIBRARY

ace