Reference

ACE_Active_Map_Manager(3)

Define a map abstraction that associates system generated keys with user specified values.

NAME

ACE_Active_Map_Manager - Define a map abstraction that associates system generated keys with user specified values.

SYNOPSIS

#include <ace/Active_Map_Manager_T.h>
template<class T>
class ACE_Active_Map_Manager : 
  public ACE_Map_Manager<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex>
{
  public:
    typedef ACE_Active_Map_Manager_Key key_type;
    typedef T mapped_type;
    typedef ACE_Map_Entry<ACE_Active_Map_Manager_Key, T> ENTRY;
        typedef ACE_Map_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> ITERATOR;
        
        typedef ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> REVERSE_ITERATOR;
        
    typedef ENTRY entry;
    typedef ITERATOR iterator;
    typedef REVERSE_ITERATOR reverse_iterator;
    ACE_Active_Map_Manager (ACE_Allocator *alloc = 0);
    ACE_Active_Map_Manager (size_t size, ACE_Allocator *alloc = 0);
    ~ACE_Active_Map_Manager (void);
    int open (
        size_t length = ACE_DEFAULT_MAP_SIZE,
        ACE_Allocator *alloc = 0
        );
    int close (void);
    int bind (const T &value, ACE_Active_Map_Manager_Key &key);
    int bind (const T &value);
    int bind (ACE_Active_Map_Manager_Key &key, T *&internal_value);
    int rebind (
        const ACE_Active_Map_Manager_Key &key,
        const T &value
        );
    int rebind (
        const ACE_Active_Map_Manager_Key &key,
        const T &value,
        T &old_value
        );
    int rebind (
        const ACE_Active_Map_Manager_Key &key,
        const T &value,
        ACE_Active_Map_Manager_Key &old_key,
        T &old_value
        );
    int find (const ACE_Active_Map_Manager_Key &key, T &value) const;
    int find (const ACE_Active_Map_Manager_Key &key) const;
    int find (
        const ACE_Active_Map_Manager_Key &key,
        T *&internal_value
        ) const;
    int unbind (const ACE_Active_Map_Manager_Key &key);
    int unbind (const ACE_Active_Map_Manager_Key &key, T &value);
    int unbind (
        const ACE_Active_Map_Manager_Key &key,
        T *&internal_value
        );
    size_t current_size (void) const;
    size_t total_size (void) const;
    static const ACE_Active_Map_Manager_Key npos (void);
    void dump (void) const;
    ACE_Map_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> begin (
        void
        );
    ACE_Map_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> end (
        void
        );
    ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> rbegin (
        void
        );
    ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> rend (
        void
        );
    ACE_ALLOC_HOOK_DECLARE;
  protected:
        typedef ACE_Map_Manager<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> ACE_AMM_BASE;
        
  private:
    inline ACE_UNIMPLEMENTED_FUNC (
        void operator= (const ACE_Active_Map_Manager<T> &)
        );
};

DESCRIPTION

Since the key is system generated, searches are very fast and take a constant amount of time.

Traits.

typedef ACE_Active_Map_Manager_Key key_type;

typedef T mapped_type;

typedef ACE_Map_Entry<ACE_Active_Map_Manager_Key, T> ENTRY;

    typedef ACE_Map_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> ITERATOR;
    

    typedef ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> REVERSE_ITERATOR;
    

typedef ENTRY entry;

typedef ITERATOR iterator;

typedef REVERSE_ITERATOR reverse_iterator;

Initialization and termination methods.

ACE_Active_Map_Manager (ACE_Allocator *alloc = 0);

Initialize a Active_Map_Manager with the ACE_DEFAULT_MAP_SIZE.

ACE_Active_Map_Manager (size_t size, ACE_Allocator *alloc = 0);

Initialize a Active_Map_Manager with size entries.

~ACE_Active_Map_Manager (void);

Close down a Active_Map_Manager and release dynamically allocated resources.

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

Initialize a Active_Map_Manager with size length.

int close (void);

Close down a Active_Map_Manager and release dynamically allocated resources.

int bind (const T &value, ACE_Active_Map_Manager_Key &key);

Add value to the map, and the corresponding key produced by the Active_Map_Manager is returned through key.

int bind (const T &value);

Add value to the map. The user does not care about the corresponding key produced by the Active_Map_Manager.

int bind (ACE_Active_Map_Manager_Key &key, T *&internal_value);

Reserves a slot in the internal structure and returns the key and a pointer to the value. User should place their value into *internal_value. This method is useful in reducing the number of copies required in some cases. Note that internal_value is only a temporary pointer and will change when the map resizes. Therefore, the user should use the pointer immediately and not hold on to it.

int rebind (const ACE_Active_Map_Manager_Key &key, const T &value);

Reassociate key with value. The function fails if key is not in the map.

int rebind (
    const ACE_Active_Map_Manager_Key &key,
    const T &value,
    T &old_value
    );

Reassociate key with value, storing the old value into the "out" parameter old_value. The function fails if key is not in the map.

int rebind (
    const ACE_Active_Map_Manager_Key &key,
    const T &value,
    ACE_Active_Map_Manager_Key &old_key,
    T &old_value
    );

Reassociate key with value, storing the old key and value into the "out" parameter old_key and old_value. The function fails if key is not in the map.

int find (const ACE_Active_Map_Manager_Key &key, T &value) const;

Locate value associated with key.

int find (const ACE_Active_Map_Manager_Key &key) const;

Is key in the map?

int find (
    const ACE_Active_Map_Manager_Key &key,
    T *&internal_value
    ) const;

Locate value associated with key. The value is returned via internal_value and hence a copy is saved. Note that internal_value is only a temporary pointer and will change when the map resizes. Therefore, the user should use the pointer immediately and not hold on to it.

Creates a key. User should place their value into *internal_value. This method is useful in reducing the number of copies required in some cases.

int unbind (const ACE_Active_Map_Manager_Key &key);

Remove key from the map.

int unbind (const ACE_Active_Map_Manager_Key &key, T &value);

Remove key from the map, and return the value associated with key.

int unbind (
    const ACE_Active_Map_Manager_Key &key,
    T *&internal_value
    );

Locate value associated with key. The value is returned via internal_value and hence a copy is saved. Note that internal_value is only a temporary pointer and will change when the map resizes or when this slot is reused. Therefore, the user should use the pointer immediately and not hold on to it.

size_t current_size (void) const;

Return the current size of the map.

size_t total_size (void) const;

Return the total size of the map.

static const ACE_Active_Map_Manager_Key npos (void);

Returns a key that cannot be found in the map.

void dump (void) const;

Dump the state of an object.

STL styled iterator factory functions.

ACE_Map_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> begin (
    void
    );

ACE_Map_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> end (
    void
    );

Return forward iterator.

ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> rbegin (
    void
    );

ACE_Map_Reverse_Iterator<ACE_Active_Map_Manager_Key, T, ACE_Null_Mutex> rend (
    void
    );

Return reverse iterator.

ACE_ALLOC_HOOK_DECLARE;

Declare the dynamic allocation hooks.

Disallow these operations.

inline ACE_UNIMPLEMENTED_FUNC (
    void operator= (const ACE_Active_Map_Manager<T> &)
    );

AUTHOR

Irfan Pyarali

LIBRARY

ace