ACE
6.3.1
|
This class is a thin wrapper around ACE_Hash_Map_Manager, which comes handy when ACE_Hash_Map_Manager is to be used with a non-nil ACE_Allocator. This wrapper insures that the appropriate allocator is in place for every operation that accesses or updates the hash map. More...
#include <Hash_Map_With_Allocator_T.h>
Public Member Functions | |
ACE_Hash_Map_With_Allocator (ACE_Allocator *alloc) | |
Constructor. More... | |
ACE_Hash_Map_With_Allocator (size_t size, ACE_Allocator *alloc) | |
Constructor that specifies hash table size. More... | |
int | bind (const EXT_ID &, const INT_ID &, ACE_Allocator *alloc) |
int | unbind (const EXT_ID &, INT_ID &, ACE_Allocator *alloc) |
int | unbind (const EXT_ID &, ACE_Allocator *alloc) |
int | rebind (const EXT_ID &, const INT_ID &, EXT_ID &, INT_ID &, ACE_Allocator *alloc) |
int | find (const EXT_ID &, INT_ID &, ACE_Allocator *alloc) |
int | find (const EXT_ID &ext_id, ACE_Allocator *alloc) |
Returns 0 if the ext_id is in the mapping, otherwise -1. More... | |
int | close (ACE_Allocator *alloc) |
![]() | |
ACE_Hash_Map_Manager_Ex (ACE_Allocator *table_alloc=0, ACE_Allocator *entry_alloc=0) | |
ACE_Hash_Map_Manager_Ex (size_t size, ACE_Allocator *table_alloc=0, ACE_Allocator *entry_alloc=0) | |
int | open (size_t size=ACE_DEFAULT_MAP_SIZE, ACE_Allocator *table_alloc=0, ACE_Allocator *entry_alloc=0) |
int | close (void) |
int | unbind_all (void) |
Removes all the entries in the ACE_Hash_Map_Manager_Ex. More... | |
~ACE_Hash_Map_Manager_Ex (void) | |
Cleanup the ACE_Hash_Map_Manager_Ex. More... | |
int | bind (const EXT_ID &item, const INT_ID &int_id) |
int | bind (const EXT_ID &ext_id, const INT_ID &int_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry) |
int | trybind (const EXT_ID &ext_id, INT_ID &int_id) |
int | trybind (const EXT_ID &ext_id, INT_ID &int_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry) |
int | rebind (const EXT_ID &ext_id, const INT_ID &int_id) |
int | rebind (const EXT_ID &ext_id, const INT_ID &int_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry) |
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_ID &old_int_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry) |
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, EXT_ID &old_ext_id, INT_ID &old_int_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry) |
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. More... | |
int | find (const EXT_ID &ext_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry) const |
void | find (EXT_ID const &ext_id, iterator &pos) const |
int | unbind (const EXT_ID &ext_id) |
int | unbind (const EXT_ID &ext_id, INT_ID &int_id) |
int | unbind (ACE_Hash_Map_Entry< EXT_ID, INT_ID > *entry) |
Remove entry from map. More... | |
int | unbind (iterator pos) |
Remove entry from map pointed to by iterator pos. More... | |
size_t | current_size (void) const |
size_t | total_size (void) const |
ACE_Null_Mutex & | mutex (void) |
void | dump (void) const |
Dump the state of an object. More... | |
iterator | begin (void) |
Return forward iterator. More... | |
const_iterator | begin (void) const |
iterator | end (void) |
const_iterator | end (void) const |
reverse_iterator | rbegin (void) |
Return reverse iterator. More... | |
const_reverse_iterator | rbegin (void) const |
reverse_iterator | rend (void) |
const_reverse_iterator | rend (void) const |
Additional Inherited Members | |
![]() | |
typedef EXT_ID | KEY |
typedef INT_ID | VALUE |
typedef ACE_Null_Mutex | lock_type |
typedef ACE_Hash_Map_Entry < EXT_ID, INT_ID > | ENTRY |
typedef ACE_Hash_Map_Iterator_Ex < EXT_ID, INT_ID, ACE_Hash < EXT_ID >, ACE_Equal_To < EXT_ID >, ACE_Null_Mutex > | ITERATOR |
typedef ACE_Hash_Map_Const_Iterator_Ex < EXT_ID, INT_ID, ACE_Hash < EXT_ID >, ACE_Equal_To < EXT_ID >, ACE_Null_Mutex > | CONST_ITERATOR |
typedef ACE_Hash_Map_Reverse_Iterator_Ex < EXT_ID, INT_ID, ACE_Hash < EXT_ID >, ACE_Equal_To < EXT_ID >, ACE_Null_Mutex > | REVERSE_ITERATOR |
typedef ACE_Hash_Map_Const_Reverse_Iterator_Ex < EXT_ID, INT_ID, ACE_Hash < EXT_ID >, ACE_Equal_To < EXT_ID >, ACE_Null_Mutex > | CONST_REVERSE_ITERATOR |
typedef ACE_Hash_Map_Iterator_Ex < EXT_ID, INT_ID, ACE_Hash < EXT_ID >, ACE_Equal_To < EXT_ID >, ACE_Null_Mutex > | iterator |
typedef ACE_Hash_Map_Const_Iterator_Ex < EXT_ID, INT_ID, ACE_Hash < EXT_ID >, ACE_Equal_To < EXT_ID >, ACE_Null_Mutex > | const_iterator |
typedef ACE_Hash_Map_Reverse_Iterator_Ex < EXT_ID, INT_ID, ACE_Hash < EXT_ID >, ACE_Equal_To < EXT_ID >, ACE_Null_Mutex > | reverse_iterator |
typedef ACE_Hash_Map_Const_Reverse_Iterator_Ex < EXT_ID, INT_ID, ACE_Hash < EXT_ID >, ACE_Equal_To < EXT_ID >, ACE_Null_Mutex > | const_reverse_iterator |
typedef EXT_ID | key_type |
typedef INT_ID | data_type |
typedef ACE_Hash_Map_Entry < EXT_ID, INT_ID > | value_type |
typedef value_type & | reference |
typedef value_type const & | const_reference |
typedef value_type * | pointer |
typedef value_type const * | const_pointer |
typedef ptrdiff_t | difference_type |
typedef size_t | size_type |
![]() | |
int | equal (const EXT_ID &id1, const EXT_ID &id2) |
u_long | hash (const EXT_ID &ext_id) |
int | bind_i (const EXT_ID &ext_id, const INT_ID &int_id) |
Performs bind. Must be called with locks held. More... | |
int | bind_i (const EXT_ID &ext_id, const INT_ID &int_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry) |
Performs bind. Must be called with locks held. More... | |
int | trybind_i (const EXT_ID &ext_id, INT_ID &int_id) |
Performs trybind. Must be called with locks held. More... | |
int | trybind_i (const EXT_ID &ext_id, INT_ID &int_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry) |
Performs trybind. Must be called with locks held. More... | |
int | rebind_i (const EXT_ID &ext_id, const INT_ID &int_id) |
Performs rebind. Must be called with locks held. More... | |
int | rebind_i (const EXT_ID &ext_id, const INT_ID &int_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry) |
Performs rebind. Must be called with locks held. More... | |
int | rebind_i (const EXT_ID &ext_id, const INT_ID &int_id, INT_ID &old_int_id) |
Performs rebind. Must be called with locks held. More... | |
int | rebind_i (const EXT_ID &ext_id, const INT_ID &int_id, INT_ID &old_int_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry) |
Performs rebind. Must be called with locks held. More... | |
int | rebind_i (const EXT_ID &ext_id, const INT_ID &int_id, EXT_ID &old_ext_id, INT_ID &old_int_id) |
Performs rebind. Must be called with locks held. More... | |
int | rebind_i (const EXT_ID &ext_id, const INT_ID &int_id, EXT_ID &old_ext_id, INT_ID &old_int_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry) |
Performs rebind. Must be called with locks held. More... | |
int | find_i (const EXT_ID &ext_id, INT_ID &int_id) |
int | find_i (const EXT_ID &ext_id) |
int | find_i (const EXT_ID &ext_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry) |
int | unbind_i (const EXT_ID &ext_id, INT_ID &int_id) |
Performs unbind. Must be called with locks held. More... | |
int | unbind_i (const EXT_ID &ext_id) |
Performs unbind. Must be called with locks held. More... | |
int | unbind_i (ACE_Hash_Map_Entry< EXT_ID, INT_ID > *entry) |
Performs unbind. Must be called with locks held. More... | |
int | create_buckets (size_t size) |
int | close_i (void) |
int | unbind_all_i (void) |
int | shared_find (const EXT_ID &ext_id, ACE_Hash_Map_Entry< EXT_ID, INT_ID > *&entry, size_t &loc) |
Returns the ACE_Hash_Map_Entry that corresponds to ext_id. More... | |
ACE_Hash_Map_Entry< EXT_ID, INT_ID > * | table (void) |
Accessor of the underlying table. More... | |
![]() | |
ACE_Allocator * | table_allocator_ |
ACE_Allocator * | entry_allocator_ |
ACE_Null_Mutex | lock_ |
ACE_Hash< EXT_ID > | hash_key_ |
Function object used for hashing keys. More... | |
ACE_Equal_To< EXT_ID > | compare_keys_ |
Function object used for comparing keys. More... | |
This class is a thin wrapper around ACE_Hash_Map_Manager, which comes handy when ACE_Hash_Map_Manager is to be used with a non-nil ACE_Allocator. This wrapper insures that the appropriate allocator is in place for every operation that accesses or updates the hash map.
If we use ACE_Hash_Map_Manager with a shared memory allocator (or memory-mapped file allocator, for example), the allocator pointer used by ACE_Hash_Map_Manager gets stored with it, in shared memory (or memory-mapped file). Naturally, this will cause horrible problems, since only the first process to set that pointer will be guaranteed the address of the allocator is meaningful! That is why we need this wrapper, which insures that appropriate allocator pointer is in place for each call.
At some point it would be a good idea to update this class to use the new "two allocator" technique provided by ACE_Hash_Map_Manager_Ex
.
ACE_Hash_Map_With_Allocator< EXT_ID, INT_ID >::ACE_Hash_Map_With_Allocator | ( | ACE_Allocator * | alloc | ) |
Constructor.
ACE_Hash_Map_With_Allocator< EXT_ID, INT_ID >::ACE_Hash_Map_With_Allocator | ( | size_t | size, |
ACE_Allocator * | alloc | ||
) |
Constructor that specifies hash table size.
|
inline |
|
inline |
|
inline |
|
inline |
Returns 0 if the ext_id is in the mapping, otherwise -1.
|
inline |
|
inline |
|
inline |