#include <Map_Manager.h>
Collaboration diagram for ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >:
Public Types | |
typedef EXT_ID | KEY |
typedef INT_ID | VALUE |
typedef ACE_LOCK | lock_type |
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 Member Functions | |
ACE_Map_Manager (ACE_Allocator *alloc=0) | |
Initialize a ACE_Map_Manager with the ACE_DEFAULT_MAP_SIZE. | |
ACE_Map_Manager (size_t size, ACE_Allocator *alloc=0) | |
Initialize a ACE_Map_Manager with size entries. | |
int | open (size_t length=ACE_DEFAULT_MAP_SIZE, ACE_Allocator *alloc=0) |
Initialize a ACE_Map_Manager with size length. | |
int | close (void) |
~ACE_Map_Manager (void) | |
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) |
int | trybind (const EXT_ID &ext_id, INT_ID &int_id) |
int | find (const EXT_ID &ext_id, INT_ID &int_id) const |
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 Member Functions | |
int | bind_i (const EXT_ID &ext_id, const INT_ID &int_id) |
int | shared_bind (const EXT_ID &ext_id, const INT_ID &int_id) |
int | rebind_i (const EXT_ID &ext_id, const INT_ID &int_id, EXT_ID &old_ext_id, INT_ID &old_int_id) |
int | rebind_i (const EXT_ID &ext_id, const INT_ID &int_id, INT_ID &old_int_id) |
int | rebind_i (const EXT_ID &ext_id, const INT_ID &int_id) |
int | trybind_i (const EXT_ID &ext_id, INT_ID &int_id) |
int | find_i (const EXT_ID &ext_id, INT_ID &int_id) |
int | find_and_return_index (const EXT_ID &ext_id, ACE_UINT32 &slot) |
int | unbind_i (const EXT_ID &ext_id, INT_ID &int_id) |
int | unbind_i (const EXT_ID &ext_id) |
int | unbind_and_return_index (const EXT_ID &ext_id, ACE_UINT32 &slot) |
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 . Must be called with locks held. | |
int | equal (const EXT_ID &id1, const EXT_ID &id2) |
ACE_UINT32 | new_size (void) |
void | free_search_structure (void) |
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 > ¤t_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_Manager. | |
ACE_Map_Entry< EXT_ID, INT_ID > * | search_structure_ |
Implement the Map as a resizeable array of ACE_Map_Entry. | |
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 Member Functions | |
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 > |
The 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 ACE_Allocator to allocate memory. The user can make this a persistant class by providing an ACE_Allocator 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 .
Definition at line 128 of file Map_Manager.h.
|
Definition at line 147 of file Map_Manager.h. |
|
Definition at line 143 of file Map_Manager.h. |
|
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 141 of file Map_Manager.h. Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::resize_i(). |
|
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 146 of file Map_Manager.h. |
|
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 142 of file Map_Manager.h. |
|
Definition at line 138 of file Map_Manager.h. |
|
Definition at line 140 of file Map_Manager.h. |
|
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 148 of file Map_Manager.h. |
|
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 144 of file Map_Manager.h. |
|
Definition at line 139 of file Map_Manager.h. |
|
Definition at line 429 of file Map_Manager.h.
00430 { 00431 /// Grow map exponentially up to 64K 00432 MAX_EXPONENTIAL = 64 * 1024, 00433 00434 /// Afterwards grow in chunks of 32K 00435 LINEAR_INCREASE = 32 * 1024 00436 }; |
|
Initialize a ACE_Map_Manager with the ACE_DEFAULT_MAP_SIZE.
Definition at line 63 of file Map_Manager.inl. References ACE_DEFAULT_MAP_SIZE, ACE_ERROR, ACE_TEXT, LM_ERROR, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::open().
00064 : allocator_ (0), 00065 search_structure_ (0), 00066 total_size_ (0), 00067 cur_size_ (0) 00068 { 00069 if (this->open (ACE_DEFAULT_MAP_SIZE, alloc) == -1) 00070 ACE_ERROR ((LM_ERROR, ACE_TEXT ("ACE_Map_Manager\n"))); 00071 } |
|
Initialize a ACE_Map_Manager with size entries.
Definition at line 51 of file Map_Manager.inl. References ACE_ERROR, ACE_TEXT, LM_ERROR, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::open().
00053 : allocator_ (0), 00054 search_structure_ (0), 00055 total_size_ (0), 00056 cur_size_ (0) 00057 { 00058 if (this->open (size, alloc) == -1) 00059 ACE_ERROR ((LM_ERROR, ACE_TEXT ("ACE_Map_Manager\n"))); 00060 } |
|
Close down a ACE_Map_Manager and release dynamically allocated resources. Definition at line 82 of file Map_Manager.inl. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::close().
00083 { 00084 this->close (); 00085 } |
|
|
|
Return forward iterator.
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 255 of file Map_Manager.inl.
00256 { 00257 return ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> (*this); 00258 } |
|
Associate ext_id with int_id. If ext_id is already in the map then the ACE_Map_Entry is not changed.
Definition at line 88 of file Map_Manager.inl. References ACE_WRITE_GUARD_RETURN, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::bind_i(). Referenced by ACE_Token_Collection::insert().
00090 { 00091 ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); 00092 00093 return this->bind_i (ext_id, 00094 int_id); 00095 } |
|
Performs the binding of ext_id to int_id. Must be called with locks held. Definition at line 83 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find_and_return_index(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::shared_bind(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::bind(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::trybind_i().
00085 { 00086 // Try to find the key. 00087 ACE_UINT32 slot = 0; 00088 int result = this->find_and_return_index (ext_id, 00089 slot); 00090 00091 if (result == 0) 00092 // We found the key. Nothing to change. 00093 return 1; 00094 else 00095 // We didn't find the key. 00096 return this->shared_bind (ext_id, 00097 int_id); 00098 } |
|
Close down a ACE_Map_Manager and release dynamically allocated resources. Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 74 of file Map_Manager.inl. References ACE_WRITE_GUARD_RETURN, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::close_i(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::~ACE_Map_Manager().
00075 { 00076 ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); 00077 00078 return this->close_i (); 00079 } |
|
Close down a . Must be called with locks held.
Definition at line 62 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::free_search_structure(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::occupied_list_. Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::close(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::open().
00063 { 00064 // Free entries. 00065 this->free_search_structure (); 00066 00067 // Reset sizes. 00068 this->total_size_ = 0; 00069 this->cur_size_ = 0; 00070 00071 // Reset circular free list. 00072 this->free_list_.next (this->free_list_id ()); 00073 this->free_list_.prev (this->free_list_id ()); 00074 00075 // Reset circular occupied list. 00076 this->occupied_list_.next (this->occupied_list_id ()); 00077 this->occupied_list_.prev (this->occupied_list_id ()); 00078 00079 return 0; 00080 } |
|
Return the current size of the map.
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 192 of file Map_Manager.inl. References ACE_WRITE_GUARD_RETURN.
00193 { 00194 ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, static_cast<size_t> (-1)); 00195 return this->cur_size_; 00196 } |
|
Dump the state of an object.
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 611 of file Map_Manager.cpp. References ACE_BEGIN_DUMP, ACE_DEBUG, ACE_END_DUMP, ACE_TEXT, ACE_Allocator::dump(), and LM_DEBUG. Referenced by ACE_Token_Collection::dump().
00612 { 00613 #if defined (ACE_HAS_DUMP) 00614 ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); 00615 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("total_size_ = %d"), this->total_size_)); 00616 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ncur_size_ = %d"), this->cur_size_)); 00617 this->allocator_->dump (); 00618 this->lock_.dump (); 00619 ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); 00620 #endif /* ACE_HAS_DUMP */ 00621 } |
|
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 262 of file Map_Manager.inl.
00263 { 00264 return ACE_Map_Iterator<EXT_ID, INT_ID, ACE_LOCK> (*this, 1); 00265 } |
|
Returns 1 if == , else 0. This is defined as a separate method to facilitate template specialization. Definition at line 232 of file Map_Manager.inl. Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find_and_return_index().
00234 {
00235 return id1 == id2;
00236 }
|
|
Returns 0 if the ext_id is in the mapping, otherwise -1.
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 144 of file Map_Manager.inl. References ACE_READ_GUARD_RETURN, ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find_and_return_index(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::lock_.
00145 { 00146 ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> *nc_this = 00147 (ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> *) this; 00148 ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); 00149 00150 ACE_UINT32 slot = 0; 00151 return nc_this->find_and_return_index (ext_id, slot); 00152 } |
|
Locate ext_id and pass out parameter via int_id.
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 155 of file Map_Manager.inl. References ACE_READ_GUARD_RETURN, ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find_i(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::lock_. Referenced by ACE_Token_Collection::acquire(), ACE_Token_Collection::insert(), ACE_Token_Collection::is_member(), ACE_Token_Collection::release(), ACE_Token_Collection::renew(), and ACE_Token_Collection::tryacquire().
00157 { 00158 ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> *nc_this = 00159 (ACE_Map_Manager<EXT_ID, INT_ID, ACE_LOCK> *) this; 00160 ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); 00161 00162 return nc_this->find_i (ext_id, int_id); 00163 } |
|
Performs a find using ext_id as the key. Must be called with locks held. Definition at line 363 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::equal(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::occupied_list_, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::occupied_list_id(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::bind_i(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find_i(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::rebind_i(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::trybind_i(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind_and_return_index().
00365 { 00366 // Go through the entire occupied list looking for the key. 00367 for (ACE_UINT32 i = this->occupied_list_.next (); 00368 i != this->occupied_list_id (); 00369 i = this->search_structure_[i].next ()) 00370 { 00371 #if defined (ACE_HAS_LAZY_MAP_MANAGER) 00372 if (this->search_structure_[i].free_) 00373 continue; 00374 #endif /* ACE_HAS_LAZY_MAP_MANAGER */ 00375 00376 if (this->equal (this->search_structure_[i].ext_id_, 00377 ext_id)) 00378 { 00379 // If found, return slot. 00380 slot = i; 00381 return 0; 00382 } 00383 } 00384 00385 // Key was not found. 00386 return -1; 00387 } |
|
Performs a find of int_id using ext_id as the key. Must be called with locks held. Definition at line 424 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find_and_return_index(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find().
00426 { 00427 // Try to find the key. 00428 ACE_UINT32 slot = 0; 00429 int result = this->find_and_return_index (ext_id, 00430 slot); 00431 if (result == 0) 00432 // Key was found. Make a copy of value. 00433 int_id = this->search_structure_[slot].int_id_; 00434 00435 return result; 00436 } |
|
Id of the free list sentinel.
Definition at line 239 of file Map_Manager.inl. Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::move_from_occupied_list_to_free_list(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::next_free(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::resize_i().
00240 { 00241 // If you change ~0, please change 00242 // ACE_Active_Map_Manager_Key::ACE_Active_Map_Manager_Key() 00243 // accordingly. 00244 return (ACE_UINT32) ~0; 00245 } |
|
Explicitly call the destructors and free up the . Definition at line 573 of file Map_Manager.cpp. References ACE_DES_FREE_TEMPLATE2, ACE_NOOP, and ACE_Allocator::free(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::close_i(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::resize_i().
00574 { 00575 // Free up the structure. 00576 if (this->search_structure_ != 0) 00577 { 00578 for (ACE_UINT32 i = 0; i < this->total_size_; i++) 00579 // Explicitly call the destructor. 00580 { 00581 ENTRY *ss = &this->search_structure_[i]; 00582 // The "if" second argument results in a no-op instead of 00583 // deallocation. 00584 ACE_DES_FREE_TEMPLATE2 (ss, ACE_NOOP, 00585 ACE_Map_Entry, EXT_ID, INT_ID); 00586 } 00587 00588 // Actually free the memory. 00589 this->allocator_->free (this->search_structure_); 00590 this->search_structure_ = 0; 00591 } 00592 } |
|
Move from free list to occupied list.
Definition at line 212 of file Map_Manager.inl. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::occupied_list_, ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::occupied_list_id(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::shared_move(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::shared_bind().
00213 { 00214 this->shared_move (slot, 00215 this->free_list_, 00216 this->free_list_id (), 00217 this->occupied_list_, 00218 this->occupied_list_id ()); 00219 } |
|
Move from occupied list to free list.
Definition at line 222 of file Map_Manager.inl. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::free_list_id(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::shared_move(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind_slot().
00223 { 00224 this->shared_move (slot, 00225 this->occupied_list_, 00226 this->occupied_list_id (), 00227 this->free_list_, 00228 this->free_list_id ()); 00229 } |
|
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 ACE_Atomic_Op with an ACE_Recursive_Mutex or ACE_Process_Mutex, or if you need to guard the state of an iterator.
Definition at line 206 of file Map_Manager.inl.
00207 { 00208 return this->lock_; 00209 } |
|
This function returns the new size of the Map Manager. This function is called when we run out of room and need to resize. Definition at line 556 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::LINEAR_INCREASE, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::MAX_EXPONENTIAL.
00557 { 00558 // Calculate the new size. 00559 ACE_UINT32 current_size = this->total_size_; 00560 00561 if (current_size < MAX_EXPONENTIAL) 00562 // Exponentially increase if we haven't reached MAX_EXPONENTIAL. 00563 current_size *= 2; 00564 else 00565 // Linear increase if we have reached MAX_EXPONENTIAL. 00566 current_size += LINEAR_INCREASE; 00567 00568 // This should be the new size. 00569 return current_size; 00570 } |
|
Finds the next free slot.
Definition at line 101 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::free_list_id(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::resize_i(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::shared_bind().
00102 { 00103 // Look in the free list for an empty slot. 00104 free_slot = this->free_list_.next (); 00105 00106 // If we do find a free slot, return successfully. 00107 if (free_slot != this->free_list_id ()) 00108 return 0; 00109 00110 #if defined (ACE_HAS_LAZY_MAP_MANAGER) 00111 00112 // Move any free slots from occupied list to free list. 00113 this->move_all_free_slots_from_occupied_list (); 00114 00115 // Try again in case we found any free slots in the occupied list. 00116 free_slot = this->free_list_.next (); 00117 00118 // If we do find a free slot, return successfully. 00119 if (free_slot != this->free_list_id ()) 00120 return 0; 00121 00122 #endif /* ACE_HAS_LAZY_MAP_MANAGER */ 00123 00124 // Resize the map. 00125 int result = this->resize_i (this->new_size ()); 00126 00127 // Check for errors. 00128 if (result == 0) 00129 // New free slot. 00130 free_slot = this->free_list_.next (); 00131 00132 return result; 00133 } |
|
Id of the occupied list sentinel.
Definition at line 248 of file Map_Manager.inl. Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find_and_return_index(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::move_from_free_list_to_occupied_list(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::resize_i(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind_all().
00249 {
00250 return (ACE_UINT32) ~1;
00251 }
|
|
Initialize a ACE_Map_Manager with size length.
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 29 of file Map_Manager.cpp. References ACE_ASSERT, ACE_UINT32_MAX, ACE_WRITE_GUARD_RETURN, ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::close_i(), ACE_Allocator::instance(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::resize_i(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::ACE_Map_Manager().
00031 { 00032 ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); 00033 00034 // Close old map (if any). 00035 this->close_i (); 00036 00037 // Use the user specified allocator or the default singleton one. 00038 if (alloc == 0) 00039 alloc = ACE_Allocator::instance (); 00040 00041 this->allocator_ = alloc; 00042 00043 // This assertion is here to help track a situation that shouldn't 00044 // happen. 00045 ACE_ASSERT (size != 0); 00046 00047 // Active_Map_Manager depends on the <slot_index_> being of fixed 00048 // size. It cannot be size_t because size_t is 64-bits on 64-bit 00049 // platform and 32-bits on 32-bit platforms. Size of the <slot_index_> 00050 // has to be consistent across platforms. ACE_UIN32 is chosen as 00051 // ACE_UIN32_MAX is big enough. The assert is to ensure that the user 00052 // doesn't open the ACE_Map_Manager with a bigger size than we can 00053 // handle. 00054 ACE_ASSERT (size <= ACE_UINT32_MAX); 00055 00056 // Resize from 0 to <size>. Note that this will also set up the 00057 // circular free list. 00058 return this->resize_i ((ACE_UINT32) size); 00059 } |
|
|
|
Return reverse iterator.
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 269 of file Map_Manager.inl.
00270 { 00271 return ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> (*this); 00272 } |
|
Reassociate ext_id with int_id. Old values in the map are ignored. Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 124 of file Map_Manager.inl. References ACE_WRITE_GUARD_RETURN, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::rebind_i().
00126 { 00127 ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); 00128 00129 return this->rebind_i (ext_id, 00130 int_id); 00131 } |
|
Reassociate ext_id with int_id. If ext_id is not in the map then behaves just like . Otherwise, store the old values of int_id into the "out" parameter and rebind the new parameters.
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 112 of file Map_Manager.inl. References ACE_WRITE_GUARD_RETURN, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::rebind_i().
00115 { 00116 ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); 00117 00118 return this->rebind_i (ext_id, 00119 int_id, 00120 old_int_id); 00121 } |
|
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 and you also need full control over memory allocation.
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 98 of file Map_Manager.inl. References ACE_WRITE_GUARD_RETURN, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::rebind_i().
00102 { 00103 ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); 00104 00105 return this->rebind_i (ext_id, 00106 int_id, 00107 old_ext_id, 00108 old_int_id); 00109 } |
|
Performs a rebinding of to int_id. Must be called with locks held. Definition at line 316 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find_and_return_index(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::shared_bind(), and ACE_Allocator::sync().
00318 { 00319 // First try to find the key. 00320 ACE_UINT32 slot = 0; 00321 int result = this->find_and_return_index (ext_id, 00322 slot); 00323 if (result == 0) 00324 { 00325 // We found it, so rebind current entries. 00326 ENTRY &ss = this->search_structure_[slot]; 00327 ss.ext_id_ = ext_id; 00328 ss.int_id_ = int_id; 00329 00330 // Sync changed entry. 00331 this->allocator_->sync (&ss, sizeof ss); 00332 00333 return 1; 00334 } 00335 else 00336 // We didn't find it, so let's add it. 00337 return this->shared_bind (ext_id, 00338 int_id); 00339 } |
|
Performs a rebinding of to int_id. Also, recovers old values. Must be called with locks held. Definition at line 287 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find_and_return_index(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::shared_bind(), and ACE_Allocator::sync().
00290 { 00291 // First try to find the key. 00292 ACE_UINT32 slot = 0; 00293 int result = this->find_and_return_index (ext_id, 00294 slot); 00295 if (result == 0) 00296 { 00297 // We found it, so make copies of the old entries and rebind 00298 // current entries. 00299 ENTRY &ss = this->search_structure_[slot]; 00300 old_int_id = ss.int_id_; 00301 ss.ext_id_ = ext_id; 00302 ss.int_id_ = int_id; 00303 00304 // Sync changed entry. 00305 this->allocator_->sync (&ss, sizeof ss); 00306 00307 return 1; 00308 } 00309 else 00310 // We didn't find it, so let's add it. 00311 return this->shared_bind (ext_id, 00312 int_id); 00313 } |
|
Performs a rebinding of to int_id. Also, recovers old values. Must be called with locks held. Definition at line 256 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find_and_return_index(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::shared_bind(), and ACE_Allocator::sync(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::rebind().
00260 { 00261 // First try to find the key. 00262 ACE_UINT32 slot = 0; 00263 int result = this->find_and_return_index (ext_id, 00264 slot); 00265 if (result == 0) 00266 { 00267 // We found it, so make copies of the old entries and rebind 00268 // current entries. 00269 ENTRY &ss = this->search_structure_[slot]; 00270 old_ext_id = ss.ext_id_; 00271 old_int_id = ss.int_id_; 00272 ss.ext_id_ = ext_id; 00273 ss.int_id_ = int_id; 00274 00275 // Sync changed entry. 00276 this->allocator_->sync (&ss, sizeof ss); 00277 00278 return 1; 00279 } 00280 else 00281 // We didn't find it, so let's add it. 00282 return this->shared_bind (ext_id, 00283 int_id); 00284 } |
|
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 276 of file Map_Manager.inl.
00277 { 00278 return ACE_Map_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> (*this, 1); 00279 } |
|
Resize the map. Must be called with locks held.
Definition at line 493 of file Map_Manager.cpp. References ACE_ALLOCATOR_RETURN, ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::ENTRY, ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::free_list_id(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::free_search_structure(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::occupied_list_, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::occupied_list_id(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::next_free(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::open().
00494 { 00495 ACE_UINT32 i; 00496 ENTRY *temp = 0; 00497 00498 // Allocate new memory. 00499 ACE_ALLOCATOR_RETURN (temp, 00500 (ENTRY *) this->allocator_->malloc (new_size * sizeof (ENTRY)), 00501 -1); 00502 00503 // Copy over the occupied entires. 00504 for (i = this->occupied_list_.next (); 00505 i != this->occupied_list_id (); 00506 i = this->search_structure_[i].next ()) 00507 // Call the copy constructor using operator placement new. 00508 new (&(temp[i])) ENTRY (this->search_structure_[i]); 00509 00510 // Copy over the free entires. 00511 for (i = this->free_list_.next (); 00512 i != this->free_list_id (); 00513 i = this->search_structure_[i].next ()) 00514 // Call the copy constructor using operator placement new. 00515 new (&(temp[i])) ENTRY (this->search_structure_[i]); 00516 00517 // Construct the new elements. 00518 for (i = this->total_size_; i < new_size; i++) 00519 { 00520 // Call the constructor for each element in the array using 00521 // operator placement new. Note that this requires a default 00522 // constructor for <EXT_ID> and <INT_ID>. 00523 new (&(temp[i])) ENTRY; 00524 temp[i].next (i + 1); 00525 temp[i].prev (i - 1); 00526 00527 #if defined (ACE_HAS_LAZY_MAP_MANAGER) 00528 00529 // Even though this slot is initially free, we need the <free_> 00530 // flag to be zero so that we don't have to set it when the slot 00531 // is moved to the occupied list. In addition, this flag has no 00532 // meaning while this slot is in the free list. 00533 temp[i].free_ = false; 00534 00535 #endif /* ACE_HAS_LAZY_MAP_MANAGER */ 00536 00537 } 00538 00539 // Add new entries to the free list. 00540 this->free_list_.next (this->total_size_); 00541 this->free_list_.prev (new_size - 1); 00542 temp[new_size - 1].next (this->free_list_id ()); 00543 temp[this->total_size_].prev (this->free_list_id ()); 00544 00545 // Remove/free old elements, update the new totoal size. 00546 this->free_search_structure (); 00547 this->total_size_ = new_size; 00548 00549 // Start using new elements. 00550 this->search_structure_ = temp; 00551 00552 return 0; 00553 } |
|
Bind an entry (without finding first). Must be called with locks held. Definition at line 229 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::move_from_free_list_to_occupied_list(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::next_free(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::bind_i(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::rebind_i().
00231 { 00232 // This function assumes that the find() has already been done, and 00233 // therefore, simply adds to the map. 00234 00235 // Find an empty slot. 00236 ACE_UINT32 slot = 0; 00237 int result = this->next_free (slot); 00238 00239 if (result == 0) 00240 { 00241 // Copy key and value. 00242 this->search_structure_[slot].int_id_ = int_id; 00243 this->search_structure_[slot].ext_id_ = ext_id; 00244 00245 // Move from free list to occupied list 00246 this->move_from_free_list_to_occupied_list (slot); 00247 00248 // Update the current size. 00249 ++this->cur_size_; 00250 } 00251 00252 return result; 00253 } |
|
Move helper.
Definition at line 184 of file Map_Manager.cpp. References ACE_Map_Entry< EXT_ID, INT_ID >::next(), and ACE_Map_Entry< EXT_ID, INT_ID >::prev(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::move_from_free_list_to_occupied_list(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::move_from_occupied_list_to_free_list().
00189 { 00190 // Grab the entry. 00191 ENTRY &entry = this->search_structure_[slot]; 00192 00193 // Remove from current list. 00194 00195 // Fix the entry before us. 00196 ACE_UINT32 current_list_prev = entry.prev (); 00197 00198 if (current_list_prev == current_list_id) 00199 current_list.next (entry.next ()); 00200 else 00201 this->search_structure_[current_list_prev].next (entry.next ()); 00202 00203 // Fix the entry after us. 00204 ACE_UINT32 current_list_next = entry.next (); 00205 00206 if (current_list_next == current_list_id) 00207 current_list.prev (entry.prev ()); 00208 else 00209 this->search_structure_[current_list_next].prev (entry.prev ()); 00210 00211 // Add to new list. 00212 00213 // Fix us. 00214 ACE_UINT32 new_list_next = new_list.next (); 00215 entry.next (new_list_next); 00216 entry.prev (new_list_id); 00217 00218 // Fix entry before us. 00219 new_list.next (slot); 00220 00221 // Fix entry after us. 00222 if (new_list_next == new_list_id) 00223 new_list.prev (slot); 00224 else 00225 this->search_structure_[new_list_next].prev (slot); 00226 } |
|
Return the total size of the map.
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 199 of file Map_Manager.inl. References ACE_WRITE_GUARD_RETURN.
00200 { 00201 ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, static_cast<size_t> (-1)); 00202 return this->total_size_; 00203 } |
|
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
Definition at line 134 of file Map_Manager.inl. References ACE_WRITE_GUARD_RETURN, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::trybind_i().
00136 { 00137 ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); 00138 00139 return this->trybind_i (ext_id, 00140 int_id); 00141 } |
|
Performs a conditional bind of int_id using ext_id as the key. Must be called with locks held. Definition at line 342 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::bind_i(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find_and_return_index(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::trybind().
00344 { 00345 // Try to find the key. 00346 ACE_UINT32 slot = 0; 00347 int result = this->find_and_return_index (ext_id, 00348 slot); 00349 if (result == 0) 00350 { 00351 // Key was found. Make a copy of value, but *don't* update 00352 // anything in the map! 00353 int_id = this->search_structure_[slot].int_id_; 00354 return 1; 00355 } 00356 else 00357 // We didn't find it, so let's bind it! 00358 return this->bind_i (ext_id, 00359 int_id); 00360 } |
|
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. Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 175 of file Map_Manager.inl. References ACE_WRITE_GUARD_RETURN, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind_i().
00177 { 00178 ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); 00179 00180 return this->unbind_i (ext_id, 00181 int_id); 00182 } |
|
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_ids are *not* dynamically allocated...) Returns 0 if successful, else -1. Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 185 of file Map_Manager.inl. References ACE_WRITE_GUARD_RETURN, and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind_i(). Referenced by ACE_Token_Collection::extract().
00186 { 00187 ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); 00188 return this->unbind_i (ext_id); 00189 } |
|
Unbind all entires. Definition at line 390 of file Map_Manager.cpp. References ACE_Map_Entry< EXT_ID, INT_ID >::next(), ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::occupied_list_, ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::occupied_list_id(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind_slot().
00391 { 00392 // Go through the entire occupied list. 00393 for (ACE_UINT32 i = this->occupied_list_.next (); 00394 i != this->occupied_list_id (); 00395 ) 00396 { 00397 // 00398 // Note the trick used here: Information about the current slot 00399 // is first noted; <i> then moves to the next occupied slot; 00400 // only after this is the slot (potentially) moved from the 00401 // occupied list to the free list. This order of things, i.e., 00402 // moving <i> before moving the free slot is necessary, 00403 // otherwise we'll forget which our next occupied slot is. 00404 // 00405 00406 // Note information about current slot. 00407 ACE_Map_Entry<EXT_ID, INT_ID> ¤t_slot = 00408 this->search_structure_[i]; 00409 ACE_UINT32 position_of_current_slot = i; 00410 00411 // Move <i> to next occupied slot. 00412 i = current_slot.next (); 00413 00414 #if defined (ACE_HAS_LAZY_MAP_MANAGER) 00415 if (current_slot.free_) 00416 continue; 00417 #endif /* ACE_HAS_LAZY_MAP_MANAGER */ 00418 00419 this->unbind_slot (position_of_current_slot); 00420 } 00421 } |
|
Performs an unbind using ext_id as the key. Must be called with locks held. Definition at line 439 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find_and_return_index(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind_slot(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind_i().
00441 { 00442 // Try to find the key. 00443 int result = this->find_and_return_index (ext_id, 00444 slot); 00445 00446 if (result == 0) 00447 this->unbind_slot (slot); 00448 00449 return result; 00450 } |
|
Performs an unbind using ext_id as the key. Must be called with locks held. Definition at line 166 of file Map_Manager.inl. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind_and_return_index().
00167 { 00168 // Unbind the entry. 00169 ACE_UINT32 slot = 0; 00170 return this->unbind_and_return_index (ext_id, 00171 slot); 00172 } |
|
Performs an unbind of int_id using ext_id as the key. Must be called with locks held. Definition at line 478 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind_and_return_index(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind().
00480 { 00481 // Unbind the entry. 00482 ACE_UINT32 slot = 0; 00483 int result = this->unbind_and_return_index (ext_id, 00484 slot); 00485 if (result == 0) 00486 // If found, copy the value. 00487 int_id = this->search_structure_[slot].int_id_; 00488 00489 return result; 00490 } |
|
Unbind slot.
Definition at line 453 of file Map_Manager.cpp. References ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::move_from_occupied_list_to_free_list(). Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind_all(), and ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::unbind_and_return_index().
00454 { 00455 00456 #if defined (ACE_HAS_LAZY_MAP_MANAGER) 00457 00458 // 00459 // In the case of lazy map managers, the movement of free slots 00460 // from the occupied list to the free list is delayed until we 00461 // run out of free slots in the free list. 00462 // 00463 00464 this->search_structure_[slot].free_ = true; 00465 00466 #else 00467 00468 // Move from occupied list to free list. 00469 this->move_from_occupied_list_to_free_list (slot); 00470 00471 #endif /* ACE_HAS_LAZY_MAP_MANAGER */ 00472 00473 // Update the current size. 00474 --this->cur_size_; 00475 } |
|
Definition at line 134 of file Map_Manager.h. |
|
Definition at line 132 of file Map_Manager.h. |
|
Definition at line 133 of file Map_Manager.h. |
|
Definition at line 131 of file Map_Manager.h. |
|
Definition at line 135 of file Map_Manager.h. |
|
Declare the dynamic allocation hooks.
Reimplemented in ACE_Active_Map_Manager< T >, and ACE_Active_Map_Manager< ACE_Pair< KEY, VALUE > >. Definition at line 287 of file Map_Manager.h. |
|
Pointer to a memory allocator.
Definition at line 409 of file Map_Manager.h. |
|
Current size of the map.
Definition at line 421 of file Map_Manager.h. |
|
Free list.
Definition at line 424 of file Map_Manager.h. |
|
Synchronization variable for the MT_SAFE ACE_Map_Manager.
Definition at line 412 of file Map_Manager.h. Referenced by ACE_Map_Manager< EXT_ID, INT_ID, ACE_LOCK >::find(). |
|
|
Implement the Map as a resizeable array of ACE_Map_Entry.
Definition at line 415 of file Map_Manager.h. |
|
Total number of elements in this->search_structure_.
Definition at line 418 of file Map_Manager.h. |