---
name: "ACE_Active_Map_Manager"
section: "3"
platform: "linux"
package: "libace-doc"
version: "5.0.7-4"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/ACE_Active_Map_Manager"
---

# 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
