Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# ACE_Map_Manager Class Template Reference

Define a map abstraction that associates <EXT_ID>s with <INT_ID>s. More...

`#include <Map_Manager.h>`

Inheritance diagram for ACE_Map_Manager

[legend]
Collaboration diagram for ACE_Map_Manager:

[legend]
List of all members.

## Public Types
typedef EXT_ID | KEY
typedef INT_ID | VALUE
typedef ACE_Map_Entry<EXT_ID, INT_ID> | ENTRY
typedef ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> | ITERATOR
typedef ACE_Map_Const_Iterator< EXT_ID, INT_ID, ACE_LOCK> | CONST_ITERATOR
typedef ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK> | REVERSE_ITERATOR
typedef ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> | iterator
typedef ACE_Map_Const_Iterator< EXT_ID, INT_ID, ACE_LOCK> | const_iterator
typedef ACE_Map_Reverse_Iterator< EXT_ID, INT_ID, ACE_LOCK> | reverse_iterator
## Public Methods
| ACE_Map_Manager (ACE_Allocator *alloc = 0)
| Initialize a <Map_Manager> with the .
| ACE_Map_Manager (size_t size, ACE_Allocator *alloc = 0)
| Initialize a <Map_Manager> with <size> entries.
int | open (size_t length = ACE_DEFAULT_MAP_SIZE, ACE_Allocator *alloc = 0)
| Initialize a <Map_Manager> with size <length>.
int | close (void)
| Close down a <Map_Manager> and release dynamically allocated resources.
| ~ACE_Map_Manager (void)
| Close down a <Map_Manager> and release dynamically allocated resources.
int | bind (const EXT_ID &ext_id, const INT_ID &int_id)
int | rebind (const EXT_ID &ext_id, const INT_ID &int_id, EXT_ID &old_ext_id, INT_ID &old_int_id)
int | rebind (const EXT_ID &ext_id, const INT_ID &int_id, INT_ID &old_int_id)
int | rebind (const EXT_ID &ext_id, const INT_ID &int_id)
| Reassociate <ext_id> with <int_id>. Old values in the map are ignored.
int | trybind (const EXT_ID &ext_id, INT_ID &int_id)
int | find (const EXT_ID &ext_id, INT_ID &int_id) const
| Locate <ext_id> and pass out parameter via <int_id>. Returns 0 if found, returns -1 if not found.
int | find (const EXT_ID &ext_id) const
| Returns 0 if the <ext_id> is in the mapping, otherwise -1.
int | unbind (const EXT_ID &ext_id)
int | unbind (const EXT_ID &ext_id, INT_ID &int_id)
void | unbind_all (void)
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.
ACE_LOCK& | mutex (void)
void | dump (void) const
| Dump the state of an object.
ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> | begin (void)
| Return forward iterator.
ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> | end (void)
ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> | rbegin (void)
| Return reverse iterator.
ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> | rend (void)
## Public Attributes
| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.
## Protected Types
enum | { MAX_EXPONENTIAL = 64 * 1024, LINEAR_INCREASE = 32 * 1024 }
## Protected Methods
int | bind_i (const EXT_ID &ext_id, const INT_ID &int_id)
| Performs the binding of <ext_id> to <int_id>. Must be called with locks held.
int | shared_bind (const EXT_ID &ext_id, const INT_ID &int_id)
| Bind an entry (without finding first). Must be called with locks held.
int | rebind_i (const EXT_ID &ext_id, const INT_ID &int_id, EXT_ID &old_ext_id, INT_ID &old_int_id)
| Performs a rebinding of <ext_it> to <int_id>. Also, recovers old values. Must be called with locks held.
int | rebind_i (const EXT_ID &ext_id, const INT_ID &int_id, INT_ID &old_int_id)
| Performs a rebinding of <ext_it> to <int_id>. Also, recovers old values. Must be called with locks held.
int | rebind_i (const EXT_ID &ext_id, const INT_ID &int_id)
| Performs a rebinding of <ext_it> to <int_id>. Must be called with locks held.
int | trybind_i (const EXT_ID &ext_id, INT_ID &int_id)
| Performs a conditional bind of <int_id> using <ext_id> as the key. Must be called with locks held.
int | find_i (const EXT_ID &ext_id, INT_ID &int_id)
| Performs a find of <int_id> using <ext_id> as the key. Must be called with locks held.
int | find_and_return_index (const EXT_ID &ext_id, ACE_UINT32 &slot)
| Performs a find using <ext_id> as the key. Must be called with locks held.
int | unbind_i (const EXT_ID &ext_id, INT_ID &int_id)
| Performs an unbind of <int_id> using <ext_id> as the key. Must be called with locks held.
int | unbind_i (const EXT_ID &ext_id)
| Performs an unbind using <ext_id> as the key. Must be called with locks held.
int | unbind_and_return_index (const EXT_ID &ext_id, ACE_UINT32 &slot)
| Performs an unbind using <ext_id> as the key. Must be called with locks held.
void | unbind_slot (ACE_UINT32 slot)
| Unbind <slot>.
int | resize_i (ACE_UINT32 size)
| Resize the map. Must be called with locks held.
int | close_i (void)
| Close down a <Map_Manager>. Must be called with locks held.
int | equal (const EXT_ID &id1, const EXT_ID &id2)
| Returns 1 if <id1> == <id2>, else 0. This is defined as a separate method to facilitate template specialization.
ACE_UINT32 | new_size (void)
| This function returns the new size of the Map Manager. This function is called when we run out of room and need to resize.
void | free_search_structure (void)
| Explicitly call the destructors and free up the <search_structure_>.
ACE_UINT32 | free_list_id (void) const
| Id of the free list sentinel.
ACE_UINT32 | occupied_list_id (void) const
| Id of the occupied list sentinel.
int | next_free (ACE_UINT32 &slot)
| Finds the next free slot.
void | move_from_free_list_to_occupied_list (ACE_UINT32 slot)
| Move from free list to occupied list.
void | move_from_occupied_list_to_free_list (ACE_UINT32 slot)
| Move from occupied list to free list.
void | shared_move (ACE_UINT32 slot, ACE_Map_Entry<EXT_ID, INT_ID> &current_list, ACE_UINT32 current_list_id, ACE_Map_Entry<EXT_ID, INT_ID> &new_list, ACE_UINT32 new_list_id)
| Move helper.
## Protected Attributes
ACE_Allocator* | allocator_
| Pointer to a memory allocator.
ACE_LOCK | lock_
| Synchronization variable for the MT_SAFE .
ACE_Map_Entry<EXT_ID, INT_ID>* | search_structure_
| Implement the Map as a resizeable array of .
ACE_UINT32 | total_size_
| Total number of elements in this->search_structure_.
ACE_UINT32 | cur_size_
| Current size of the map.
ACE_Map_Entry<EXT_ID, INT_ID> | free_list_
| Free list.
ACE_Map_Entry<EXT_ID, INT_ID> | occupied_list_
| Occupied list.
## Private Methods
void | operator= (const ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &)
| ACE_Map_Manager (const ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> &)
## Friends
class | ACE_Map_Iterator_Base< EXT_ID,INT_ID,ACE_LOCK >
class | ACE_Map_Const_Iterator_Base< EXT_ID,INT_ID,ACE_LOCK >
class | ACE_Map_Iterator< EXT_ID,INT_ID,ACE_LOCK >
class | ACE_Map_Const_Iterator< EXT_ID,INT_ID,ACE_LOCK >
class | ACE_Map_Reverse_Iterator< EXT_ID,INT_ID,ACE_LOCK >

## Detailed Description

### template<class EXT_ID, class INT_ID, class ACE_LOCK> template class ACE_Map_Manager

Define a map abstraction that associates <EXT_ID>s with <INT_ID>s.

The <EXT_ID> must support <operator==>. This constraint can be alleviated via template specialization, as shown in the $ACE_ROOT/tests/Conn_Test.cpp test. This class uses an to allocate memory. The user can make this a persistant class by providing an with a persistable memory pool. This implementation of a map uses an array, which is searched linearly. For more efficient searching you should use the .

## Member Typedef Documentation

template<classEXT_ID, classINT_ID, classACE_LOCK>
typedef ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::CONST_ITERATOR

template<classEXT_ID, classINT_ID, classACE_LOCK>
typedef ACE_Map_Entry<EXT_ID, INT_ID> ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::ENTRY

| Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
typedef ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::ITERATOR

| Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
typedef EXT_ID ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::KEY

template<classEXT_ID, classINT_ID, classACE_LOCK>
typedef ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::REVERSE_ITERATOR

| Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
typedef INT_ID ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::VALUE

template<classEXT_ID, classINT_ID, classACE_LOCK>
typedef ACE_Map_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::const_iterator

template<classEXT_ID, classINT_ID, classACE_LOCK>
typedef ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::iterator

| Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
typedef ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::reverse_iterator

| Reimplemented in ACE_Active_Map_Manager.

## Member Enumeration Documentation

template<classEXT_ID, classINT_ID, classACE_LOCK>
anonymous enum`[protected]`

  | Enumeration values:
  MAX_EXPONENTIAL | Grow map exponentially up to 64K.
  LINEAR_INCREASE | Afterwards grow in chunks of 32K.

## Constructor & Destructor Documentation

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> ( | ACE_Allocator * alloc = 0 )

| Initialize a <Map_Manager> with the .

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> ( | size_t size,
| ACE_Allocator * alloc = 0 )

| Initialize a <Map_Manager> with <size> entries.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::~ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> ( | void )

| Close down a <Map_Manager> and release dynamically allocated resources.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> ( | const ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >& )`[private]`

## Member Function Documentation

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE ACE_Map_Iterator< EXT_ID,INT_ID,ACE_LOCK > ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::begin ( | void )

| Return forward iterator. Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE int ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::bind ( | const EXT_ID & ext_id,
| const INT_ID & int_id )

| Associate <ext_id> with <int_id>. If <ext_id> is already in the map then the <Map_Entry> is not changed. Returns 0 if a new entry is bound successfully, returns 1 if an attempt is made to bind an existing entry, and returns -1 if failures occur.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::bind_i ( | const EXT_ID & ext_id,
| const INT_ID & int_id )`[protected]`

| Performs the binding of <ext_id> to <int_id>. Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE int ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::close ( | void )

| Close down a <Map_Manager> and release dynamically allocated resources. Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::close_i ( | void )`[protected]`

| Close down a <Map_Manager>. Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE size_t ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::current_size ( | void ) const

| Return the current size of the map. Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
void ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::dump ( | void ) const

| Dump the state of an object. Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE ACE_Map_Iterator< EXT_ID,INT_ID,ACE_LOCK > ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::end ( | void )

| Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE int ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::equal ( | const EXT_ID & id1,
| const EXT_ID & id2 )`[protected]`

| Returns 1 if <id1> == <id2>, else 0. This is defined as a separate method to facilitate template specialization.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE int ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::find ( | const EXT_ID & ext_id ) const

| Returns 0 if the <ext_id> is in the mapping, otherwise -1.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE int ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::find ( | const EXT_ID & ext_id,
| INT_ID & int_id ) const

| Locate <ext_id> and pass out parameter via <int_id>. Returns 0 if found, returns -1 if not found.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::find_and_return_index ( | const EXT_ID & ext_id,
| ACE_UINT32 & slot )`[protected]`

| Performs a find using <ext_id> as the key. Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::find_i ( | const EXT_ID & ext_id,
| INT_ID & int_id )`[protected]`

| Performs a find of <int_id> using <ext_id> as the key. Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE ACE_UINT32 ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::free_list_id ( | void ) const`[protected]`

| Id of the free list sentinel.

template<classEXT_ID, classINT_ID, classACE_LOCK>
void ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::free_search_structure ( | void )`[protected]`

| Explicitly call the destructors and free up the <search_structure_>.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE void ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::move_from_free_list_to_occupied_list ( | ACE_UINT32 slot )`[protected]`

| Move from free list to occupied list.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE void ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::move_from_occupied_list_to_free_list ( | ACE_UINT32 slot )`[protected]`

| Move from occupied list to free list.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE ACE_LOCK & ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::mutex ( | void )

| Returns a reference to the underlying . This makes it possible to acquire the lock explicitly, which can be useful in some cases if you instantiate the with an or , or if you need to guard the state of an iterator. NOTE: the right name would be <lock>, but HP/C++ will choke on that!

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_UINT32 ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::new_size ( | void )`[protected]`

| This function returns the new size of the Map Manager. This function is called when we run out of room and need to resize.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::next_free ( | ACE_UINT32 & slot )`[protected]`

| Finds the next free slot.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE ACE_UINT32 ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::occupied_list_id ( | void ) const`[protected]`

| Id of the occupied list sentinel.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::open ( | size_t length = ACE_DEFAULT_MAP_SIZE,
| ACE_Allocator * alloc = 0 )

| Initialize a <Map_Manager> with size <length>. Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
void ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::operator= ( | const ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >& )`[private]`

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE ACE_Map_Reverse_Iterator< EXT_ID,INT_ID,ACE_LOCK > ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::rbegin ( | void )

| Return reverse iterator. Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE int ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::rebind ( | const EXT_ID & ext_id,
| const INT_ID & int_id )

| Reassociate <ext_id> with <int_id>. Old values in the map are ignored.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE int ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::rebind ( | const EXT_ID & ext_id,
| const INT_ID & int_id,
| INT_ID & old_int_id )

| Reassociate <ext_id> with <int_id>. If <ext_id> is not in the map then behaves just like <bind>. Otherwise, store the old values of <int_id> into the "out" parameter and rebind the new parameters. Returns 0 if a new entry is bound successfully, returns 1 if an existing entry was rebound, and returns -1 if failures occur.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE int ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::rebind ( | const EXT_ID & ext_id,
| const INT_ID & int_id,
| EXT_ID & old_ext_id,
| INT_ID & old_int_id )

| Reassociate <ext_id> with <int_id>. If <ext_id> is not in the map then behaves just like <bind>. Otherwise, store the old values of <ext_id> and <int_id> into the "out" parameters and rebind the new parameters. This is very useful if you need to have an atomic way of updating <Map_Entries> and you also need full control over memory allocation. Returns 0 if a new entry is bound successfully, returns 1 if an existing entry was rebound, and returns -1 if failures occur.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::rebind_i ( | const EXT_ID & ext_id,
| const INT_ID & int_id )`[protected]`

| Performs a rebinding of <ext_it> to <int_id>. Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::rebind_i ( | const EXT_ID & ext_id,
| const INT_ID & int_id,
| INT_ID & old_int_id )`[protected]`

| Performs a rebinding of <ext_it> to <int_id>. Also, recovers old values. Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::rebind_i ( | const EXT_ID & ext_id,
| const INT_ID & int_id,
| EXT_ID & old_ext_id,
| INT_ID & old_int_id )`[protected]`

| Performs a rebinding of <ext_it> to <int_id>. Also, recovers old values. Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE ACE_Map_Reverse_Iterator< EXT_ID,INT_ID,ACE_LOCK > ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::rend ( | void )

| Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::resize_i ( | ACE_UINT32 size )`[protected]`

| Resize the map. Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::shared_bind ( | const EXT_ID & ext_id,
| const INT_ID & int_id )`[protected]`

| Bind an entry (without finding first). Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
void ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::shared_move ( | ACE_UINT32 slot,
| ACE_Map_Entry< EXT_ID,INT_ID >& current_list,
| ACE_UINT32 current_list_id,
| ACE_Map_Entry< EXT_ID,INT_ID >& new_list,
| ACE_UINT32 new_list_id )`[protected]`

| Move helper.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE size_t ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::total_size ( | void ) const

| Return the total size of the map. Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE int ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::trybind ( | const EXT_ID & ext_id,
| INT_ID & int_id )

| Associate <ext_id> with <int_id> if and only if <ext_id> is not in the map. If <ext_id> is already in the map then the <int_id> parameter is overwritten with the existing value in the map Returns 0 if a new entry is bound successfully, returns 1 if an attempt is made to bind an existing entry, and returns -1 if failures occur.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::trybind_i ( | const EXT_ID & ext_id,
| INT_ID & int_id )`[protected]`

| Performs a conditional bind of <int_id> using <ext_id> as the key. Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE int ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::unbind ( | const EXT_ID & ext_id,
| INT_ID & int_id )

| Break any association of <ext_id>. Returns the value of <int_id> in case the caller needs to deallocate memory. Returns 0 if successful, else -1.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE int ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::unbind ( | const EXT_ID & ext_id )

| Unbind (remove) the <ext_id> from the map. Don't return the <int_id> to the caller (this is useful for collections where the <int_id>s are *not* dynamically allocated...) Returns 0 if successful, else -1.

template<classEXT_ID, classINT_ID, classACE_LOCK>
void ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::unbind_all ( | void )

| Unbind all entires.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::unbind_and_return_index ( | const EXT_ID & ext_id,
| ACE_UINT32 & slot )`[protected]`

| Performs an unbind using <ext_id> as the key. Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_INLINE int ACE_Map_Manager< EXT_ID,INT_ID,ACE_LOCK >::unbind_i ( | const EXT_ID & ext_id )`[protected]`

| Performs an unbind using <ext_id> as the key. Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
int ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::unbind_i ( | const EXT_ID & ext_id,
| INT_ID & int_id )`[protected]`

| Performs an unbind of <int_id> using <ext_id> as the key. Must be called with locks held.

template<classEXT_ID, classINT_ID, classACE_LOCK>
void ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::unbind_slot ( | ACE_UINT32 slot )`[protected]`

| Unbind <slot>.

## Friends And Related Function Documentation

template<classEXT_ID, classINT_ID, classACE_LOCK>
class ACE_Map_Const_Iterator`[friend]`

template<classEXT_ID, classINT_ID, classACE_LOCK>
class ACE_Map_Const_Iterator_Base`[friend]`

template<classEXT_ID, classINT_ID, classACE_LOCK>
class ACE_Map_Iterator`[friend]`

template<classEXT_ID, classINT_ID, classACE_LOCK>
class ACE_Map_Iterator_Base`[friend]`

template<classEXT_ID, classINT_ID, classACE_LOCK>
class ACE_Map_Reverse_Iterator`[friend]`

## Member Data Documentation

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented in ACE_Active_Map_Manager.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_Allocator * ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::allocator_`[protected]`

| Pointer to a memory allocator.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_UINT32 ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::cur_size_`[protected]`

| Current size of the map.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_Map_Entry< EXT_ID,INT_ID > ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::free_list_`[protected]`

| Free list.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_LOCK ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::lock_`[protected]`

| Synchronization variable for the MT_SAFE .

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_Map_Entry< EXT_ID,INT_ID > ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::occupied_list_`[protected]`

| Occupied list.

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_Map_Entry< EXT_ID,INT_ID >* ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::search_structure_`[protected]`

| Implement the Map as a resizeable array of .

template<classEXT_ID, classINT_ID, classACE_LOCK>
ACE_UINT32 ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK>::total_size_`[protected]`

| Total number of elements in this->search_structure_.

The documentation for this class was generated from the following files:

- Map_Manager.h
- Map_Manager.cpp
- Map_Manager.i