diff options
author | sjiang <sjiang@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-08-13 00:03:07 +0000 |
---|---|---|
committer | sjiang <sjiang@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-08-13 00:03:07 +0000 |
commit | 3cde9e86a1579e2c18aed7c5b456a38d335b9dbb (patch) | |
tree | a8090491c432e7519ef41031d0a68452b9219d9b | |
parent | e0a6bfd9502dc1120b14fb55b7782412aa81970e (diff) | |
download | ATCD-3cde9e86a1579e2c18aed7c5b456a38d335b9dbb.tar.gz |
ChangeLog Tag: Sun Aug 13 000:02:00 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
-rw-r--r-- | ACE/ace/Hash_MultiMap_Manager.h | 31 | ||||
-rw-r--r-- | ACE/ace/Hash_MultiMap_Manager_T.inl | 1102 | ||||
-rw-r--r-- | ACE/ace/Hash_Multi_Map_Manager_T.cpp (renamed from ACE/ace/Hash_MultiMap_Manager_T.cpp) | 190 | ||||
-rw-r--r-- | ACE/ace/Hash_Multi_Map_Manager_T.h (renamed from ACE/ace/Hash_MultiMap_Manager_T.h) | 527 | ||||
-rw-r--r-- | ACE/ace/Hash_Multi_Map_Manager_T.inl | 994 | ||||
-rw-r--r-- | ACE/ace/ace.mpc | 3 |
6 files changed, 1284 insertions, 1563 deletions
diff --git a/ACE/ace/Hash_MultiMap_Manager.h b/ACE/ace/Hash_MultiMap_Manager.h deleted file mode 100644 index ab2d53bed1c..00000000000 --- a/ACE/ace/Hash_MultiMap_Manager.h +++ /dev/null @@ -1,31 +0,0 @@ -// -*- C++ -*- - -//============================================================================= -/** - * @file Hash_MultiMap_Manager.h - * - * $Id$ - * - * Backward compatibility header. - * - * @author Shanshan Jiang <shanshan.jiang@vanderbilt.edu> - */ -//============================================================================= - -#ifndef ACE_HASH_MULTIMAP_MANAGER_H -#define ACE_HASH_MULTIMAP_MANAGER_H - -#include /**/ "ace/pre.h" - -#include "ace/config-all.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -# pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - -// Include the templates here. -#include "ace/Hash_MultiMap_Manager_T.h" - -#include /**/ "ace/post.h" - -#endif /* ACE_HASH_MULTIMAP_MANAGER_H */ diff --git a/ACE/ace/Hash_MultiMap_Manager_T.inl b/ACE/ace/Hash_MultiMap_Manager_T.inl deleted file mode 100644 index d8b881c1296..00000000000 --- a/ACE/ace/Hash_MultiMap_Manager_T.inl +++ /dev/null @@ -1,1102 +0,0 @@ -// -*- C++ -*- -// -// $Id$ - -#include "ace/Guard_T.h" - -ACE_BEGIN_VERSIONED_NAMESPACE_DECL - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Manager_Ex (size_t size, - ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) - : table_allocator_ (table_alloc), - entry_allocator_ (entry_alloc), - table_ (0), - total_size_ (0), - cur_size_ (0) -{ - if (this->open (size, table_alloc, entry_alloc) == -1) - ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("ACE_Hash_MultiMap_Manager_Ex\n"))); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Manager_Ex (ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) - : table_allocator_ (table_alloc), - entry_allocator_ (entry_alloc), - table_ (0), - total_size_ (0), - cur_size_ (0) -{ - if (this->open (ACE_DEFAULT_MAP_SIZE, table_alloc, entry_alloc) == -1) - ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("ACE_Hash_MultiMap_Manager_Ex\n"))); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::close (void) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->close_i (); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_all (void) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_all_i (); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::~ACE_Hash_MultiMap_Manager_Ex (void) -{ - this->close (); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE size_t -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::current_size (void) const -{ - return this->cur_size_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE size_t -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::total_size (void) const -{ - return this->total_size_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE ACE_LOCK & -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::mutex (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Manager_Ex::mutex"); - return this->lock_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE u_long -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::hash (const EXT_ID &ext_id) -{ - return this->hash_key_ (ext_id); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::equal (const EXT_ID &id1, - const EXT_ID &id2) -{ - return this->compare_keys_ (id1, id2); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind_i (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *temp; - - return this->bind_i (ext_id, int_id, temp); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set) -{ - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *temp; - - return this->bind_i (ext_id, int_id_set, temp); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->bind_i (ext_id, int_id); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->bind_i (ext_id, int_id, entry); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->bind_i (ext_id, int_id_set); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->bind_i (ext_id, int_id_set, entry); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::trybind_i (const EXT_ID &ext_id, - ACE_Unbounded_Set<INT_ID> &int_id_set) -{ - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *temp; - - int result = this->trybind_i (ext_id, int_id_set, temp); - if (result == 1) - int_id_set = temp->int_id_set_; - return result; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::trybind (const EXT_ID &ext_id, - ACE_Unbounded_Set<INT_ID> &int_id_set) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->trybind_i (ext_id, int_id_set); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::trybind (const EXT_ID &ext_id, - ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->trybind_i (ext_id, int_id_set, entry); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_i (const EXT_ID &ext_id) -{ - ACE_Unbounded_Set<INT_ID> int_id_set; - - return this->unbind_i (ext_id, int_id_set); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind (const EXT_ID &ext_id, - ACE_Unbounded_Set<INT_ID> &int_id_set) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_i (ext_id, int_id_set); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_i (ext_id, int_id); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind (const EXT_ID &ext_id) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_i (ext_id) == -1 ? -1 : 0; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->unbind_i (entry) == -1 ? -1 : 0; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &ext_id, - ACE_Unbounded_Set<INT_ID> &int_id_set) -{ - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *entry; - - size_t dummy; - if (this->shared_find (ext_id, entry, dummy) == -1) - return -1; - else - { - int_id_set = entry->int_id_set_; - return 0; - } -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &ext_id, - const INT_ID &int_id) -{ - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *entry; - - size_t dummy; - if (this->shared_find (ext_id, entry, dummy) == -1) - return -1; - else - { - if (0 == entry->int_id_set_.find (int_id)) - return 0; - else - return -1; - } -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &ext_id) -{ - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *entry; - - size_t dummy; - return this->shared_find (ext_id, entry, dummy); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id, - ACE_Unbounded_Set<INT_ID> &int_id_set) const -{ - ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *nc_this = - const_cast <ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *> - (this); - - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); - - return nc_this->find_i (ext_id, int_id_set); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id, - const INT_ID &int_id) const -{ - ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *nc_this = - const_cast <ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *> - (this); - - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); - - return nc_this->find_i (ext_id, int_id); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id) const -{ - ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *nc_this = - const_cast <ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *> - (this); - - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); - - return nc_this->find_i (ext_id); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &ext_id, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) -{ - size_t dummy; - return this->shared_find (ext_id, entry, dummy); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) const -{ - ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *nc_this = - const_cast <ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *> - (this); - - ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); - - return nc_this->find_i (ext_id, entry); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set) -{ - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *node; - - return this->rebind_i (ext_id, - int_id_set, - node); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Unbounded_Set<INT_ID> &old_int_id_set) -{ - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *node; - - return this->rebind_i (ext_id, - int_id_set, - old_int_id_set, - node); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - EXT_ID &old_ext_id, - ACE_Unbounded_Set<INT_ID> &old_int_id_set) -{ - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *node; - - return this->rebind_i (ext_id, - int_id_set, - old_ext_id, - old_int_id_set, - node); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id_set); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id_set, entry); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Unbounded_Set<INT_ID> &old_int_id_set) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id_set, old_int_id_set); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Unbounded_Set<INT_ID> &old_int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id_set, old_int_id_set, entry); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - EXT_ID &old_ext_id, - ACE_Unbounded_Set<INT_ID> &old_int_id_set) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id_set, old_ext_id, old_int_id_set); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - EXT_ID &old_ext_id, - ACE_Unbounded_Set<INT_ID> &old_int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) -{ - ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); - - return this->rebind_i (ext_id, int_id_set, old_ext_id, old_int_id_set, entry); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::begin (void) -{ - return ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (*this); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::end (void) -{ - return ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (*this, 1); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rbegin (void) -{ - return ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (*this); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rend (void) -{ - return ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (*this, 1); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> * -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::table (void) -{ - return this->table_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -size_t -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::cur_size (void) const -{ - return this->cur_size_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Iterator_Base_Ex (ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, - int head) - : map_man_ (&mm), - index_ (head != 0 ? -1 : (ssize_t) mm.total_size_), - next_ (0) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Iterator_Base_Ex"); - - if (mm.table_ != 0) - this->next_ = &mm.table_[head != 0 ? 0 : mm.total_size_ - 1]; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next"); - - if (this->map_man_->table_ != 0 - && this->index_ < static_cast<ssize_t> (this->map_man_->total_size_) - && this->index_ >= 0 - && this->next_ != &this->map_man_->table_[this->index_]) - { - entry = this->next_; - return 1; - } - else - return 0; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::done (void) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::done"); - - return this->map_man_->table_ == 0 - || this->index_ >= static_cast<ssize_t> (this->map_man_->total_size_) - || this->index_ < 0; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> & -ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator* (void) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator*"); - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *retv = 0; - - int result = this->next (retv); - - ACE_UNUSED_ARG (result); - ACE_ASSERT (result != 0); - - return *retv; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> * -ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-> (void) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator->"); - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *retv = 0; - - int result = this->next (retv); - - ACE_UNUSED_ARG (result); - ACE_ASSERT (result != 0); - - return retv; -} - -// Returns the reference to the Hash_MultiMap_manager_ex that is being -// iterated over. -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& -ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map"); - return *this->map_man_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE bool -ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator== (const ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator=="); - return this->map_man_ == rhs.map_man_ - && this->index_ == rhs.index_ - && this->next_ == rhs.next_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE bool -ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!= (const ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!="); - return this->next_ != rhs.next_ - || this->index_ != rhs.index_ - || this->map_man_ != rhs.map_man_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Const_Iterator_Base_Ex (const ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, - int head) - : map_man_ (&mm), - index_ (head != 0 ? -1 : (ssize_t) mm.total_size_), - next_ (0) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Const_Iterator_Base_Ex"); - - if (mm.table_ != 0) - this->next_ = &mm.table_[head != 0 ? 0 : mm.total_size_ - 1]; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next"); - - if (this->map_man_->table_ != 0 - && this->index_ < (ssize_t) this->map_man_->total_size_ - && this->index_ >= 0 - && this->next_ != &this->map_man_->table_[this->index_]) - { - entry = this->next_; - return 1; - } - else - return 0; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::done (void) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::done"); - - return this->map_man_->table_ == 0 - || this->index_ >= (ssize_t) this->map_man_->total_size_ - || this->index_ < 0; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> & -ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator* (void) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator*"); - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *retv = 0; - - int result = this->next (retv); - - ACE_UNUSED_ARG (result); - ACE_ASSERT (result != 0); - - return *retv; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> * -ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-> (void) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator->"); - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *retv = 0; - - int result = this->next (retv); - - ACE_UNUSED_ARG (result); - ACE_ASSERT (result != 0); - - return retv; -} - -// Returns the reference to the Hash_MultiMap_manager_ex that is being -// iterated over. -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -const ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& -ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map"); - return *this->map_man_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE bool -ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator== (const ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator=="); - return this->map_man_ == rhs.map_man_ - && this->index_ == rhs.index_ - && this->next_ == rhs.next_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE bool -ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!= (const ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!="); - return this->next_ != rhs.next_ - || this->index_ != rhs.index_ - || this->map_man_ != rhs.map_man_; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_MultiMap_Iterator_Ex) - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE void -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump"); - - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Iterator_Ex (ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, - int tail) - : ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (mm, - tail == 0 ? 1 : 0) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Iterator_Ex"); - if (tail == 0) - this->forward_i (); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance"); - return this->forward_i (); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)"); - - this->forward_i (); - return *this; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)"); - - ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); - ++*this; - return retv; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)"); - - this->reverse_i (); - return *this; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> -ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)"); - - ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); - --*this; - return retv; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_MultiMap_Const_Iterator_Ex) - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE void -ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump"); - - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Const_Iterator_Ex (const ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, - int tail) - : ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (mm, - tail == 0 ? 1 : 0) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Const_Iterator_Ex"); - if (tail == 0) - this->forward_i (); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance"); - return this->forward_i (); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & -ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)"); - - this->forward_i (); - return *this; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> -ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)"); - - ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); - ++*this; - return retv; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & -ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)"); - - this->reverse_i (); - return *this; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> -ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)"); - - ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); - --*this; - return retv; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Bucket_Iterator (ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, - const EXT_ID &ext_id, - int tail) - : map_man_ (&mm) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Bucket_Iterator"); - - this->index_ = this->map_man_->hash (ext_id) % this->map_man_->total_size_; - this->next_ = &this->map_man_->table_[this->index_]; - - if (tail == 0) - this->forward_i (); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)"); - - this->forward_i (); - return *this; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)"); - - ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); - ++*this; - return retv; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)"); - - this->reverse_i (); - return *this; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)"); - - ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); - --*this; - return retv; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i"); - - this->next_ = this->next_->next_; - return this->next_ != &this->map_man_->table_[this->index_]; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i"); - - this->next_ = this->next_->prev_; - return this->next_ != &this->map_man_->table_[this->index_]; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> & -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator* (void) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator*"); - - return *this->next_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> * -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-> (void) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator->"); - - return this->next_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map"); - return *this->map_man_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE bool -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator== (const ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator=="); - return this->map_man_ == rhs.map_man_ - && this->index_ == rhs.index_ - && this->next_ == rhs.next_; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE bool -ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!= (const ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const -{ - ACE_TRACE ("ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!="); - return this->next_ != rhs.next_ - || this->index_ != rhs.index_ - || this->map_man_ != rhs.map_man_; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_MultiMap_Reverse_Iterator_Ex) - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE void -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump (void) const -{ -#if defined (ACE_HAS_DUMP) - ACE_TRACE ("ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump"); - - this->dump_i (); -#endif /* ACE_HAS_DUMP */ -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Reverse_Iterator_Ex (ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, int head) - : ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (mm, head) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_MultiMap_Reverse_Iterator_Ex"); - if (head == 0) - this->reverse_i (); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance"); - return this->reverse_i (); -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)"); - - this->reverse_i (); - return *this; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)"); - - ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); - ++*this; - return retv; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)"); - - this->forward_i (); - return *this; -} - -template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> -ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int) -{ - ACE_TRACE ("ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)"); - - ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); - --*this; - return retv; -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> -ACE_Hash_MultiMap_Manager<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_MultiMap_Manager (ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) - : ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (table_alloc, - entry_alloc) -{ -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> -ACE_Hash_MultiMap_Manager<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_MultiMap_Manager (size_t size, - ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) - : ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (size, - table_alloc, - entry_alloc) -{ -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager<EXT_ID, INT_ID, ACE_LOCK>::equal (const EXT_ID &id1, const EXT_ID &id2) -{ - return ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK>::equal (id1, id2); -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> u_long -ACE_Hash_MultiMap_Manager<EXT_ID, INT_ID, ACE_LOCK>::hash (const EXT_ID &ext_id) -{ - return ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK>::hash (ext_id); -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> -ACE_Hash_MultiMap_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_MultiMap_Iterator (ACE_Hash_MultiMap_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm, - int tail) - : ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (mm, - tail) -{ -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> -ACE_Hash_MultiMap_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_MultiMap_Iterator (const ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base) - : ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (base) -{ -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_Hash_MultiMap_Iterator<EXT_ID, INT_ID, ACE_LOCK> & -ACE_Hash_MultiMap_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator= (const ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &rhs) -{ - if (this != &rhs) - { - ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base = *this; - - base = rhs; - } - - return *this; -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> -ACE_Hash_MultiMap_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_MultiMap_Const_Iterator (const ACE_Hash_MultiMap_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm, - int tail) - : ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (mm, - tail) -{ -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> -ACE_Hash_MultiMap_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_MultiMap_Const_Iterator (const ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base) - : ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (base) -{ -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_Hash_MultiMap_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> & -ACE_Hash_MultiMap_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator= (const ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &rhs) -{ - if (this != &rhs) - { - ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base = *this; - - base = rhs; - } - - return *this; -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> -ACE_Hash_MultiMap_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_MultiMap_Reverse_Iterator (ACE_Hash_MultiMap_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm, - int head) - : ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (mm, - head) -{ -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> -ACE_Hash_MultiMap_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::ACE_Hash_MultiMap_Reverse_Iterator (const ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base) - : ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> (base) -{ -} - -template <class EXT_ID, class INT_ID, class ACE_LOCK> ACE_Hash_MultiMap_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> & -ACE_Hash_MultiMap_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK>::operator= (const ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &rhs) -{ - ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base = *this; - - base = rhs; - - return *this; -} - -ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Hash_MultiMap_Manager_T.cpp b/ACE/ace/Hash_Multi_Map_Manager_T.cpp index 1ccadbd38a6..544383d0ad0 100644 --- a/ACE/ace/Hash_MultiMap_Manager_T.cpp +++ b/ACE/ace/Hash_Multi_Map_Manager_T.cpp @@ -6,24 +6,24 @@ // ace // // = FILENAME -// Hash_MultiMap_Manager_T.cpp +// Hash_Multi_Map_Manager_T.cpp // // = AUTHOR // Shanshan Jiang <shanshan.jiang@vanderbilt.edu> // // ============================================================================ -#ifndef ACE_Hash_MultiMap_Manager_T_CPP -#define ACE_Hash_MultiMap_Manager_T_CPP +#ifndef ACE_Hash_Multi_Map_Manager_T_CPP +#define ACE_Hash_Multi_Map_Manager_T_CPP -#include "ace/Hash_MultiMap_Manager_T.h" +#include "ace/Hash_Multi_Map_Manager_T.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ #if !defined (__ACE_INLINE__) -# include "ace/Hash_MultiMap_Manager_T.inl" +# include "ace/Hash_Multi_Map_Manager_T.inl" #endif /* __ACE_INLINE__ */ #include "ace/Malloc_Base.h" @@ -32,18 +32,18 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL template <class EXT_ID, class INT_ID> -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>::ACE_Hash_MultiMap_Entry (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *next, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *prev) +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>::ACE_Hash_Multi_Map_Entry (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *next, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *prev) : next_ (next), prev_ (prev) { } template <class EXT_ID, class INT_ID> -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>::ACE_Hash_MultiMap_Entry (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *next, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *prev) +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>::ACE_Hash_Multi_Map_Entry (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *next, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *prev) : ext_id_ (ext_id), int_id_set_ (int_id_set), next_ (next), @@ -53,25 +53,25 @@ ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>::ACE_Hash_MultiMap_Entry (const EXT_ID & # if ! defined (ACE_HAS_BROKEN_NOOP_DTORS) template <class EXT_ID, class INT_ID> -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>::~ACE_Hash_MultiMap_Entry (void) +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>::~ACE_Hash_Multi_Map_Entry (void) { } # endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */ template <class EXT_ID, class INT_ID> EXT_ID & -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>::key () +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>::key () { return ext_id_; } template <class EXT_ID, class INT_ID> ACE_Unbounded_Set<INT_ID> & -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>::item () +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>::item () { return int_id_set_; } template <class EXT_ID, class INT_ID> void -ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>::dump (void) const +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>::dump (void) const { #if defined (ACE_HAS_DUMP) ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); @@ -82,7 +82,7 @@ ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>::dump (void) const } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> void -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump (void) const +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump (void) const { #if defined (ACE_HAS_DUMP) ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); @@ -96,16 +96,16 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::create_buckets (size_t size) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::create_buckets (size_t size) { - size_t bytes = size * sizeof (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>); + size_t bytes = size * sizeof (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>); void *ptr; ACE_ALLOCATOR_RETURN (ptr, this->table_allocator_->malloc (bytes), -1); - this->table_ = (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *) ptr; + this->table_ = (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *) ptr; this->total_size_ = size; @@ -113,15 +113,15 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: // list with the dummy node in the front serving as the anchor of // the list. for (size_t i = 0; i < size; i++) - new (&this->table_[i]) ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> (&this->table_[i], - &this->table_[i]); + new (&this->table_[i]) ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> (&this->table_[i], + &this->table_[i]); return 0; } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::open (size_t size, - ACE_Allocator *table_alloc, - ACE_Allocator *entry_alloc) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::open (size_t size, + ACE_Allocator *table_alloc, + ACE_Allocator *entry_alloc) { ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); @@ -150,7 +150,7 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::close_i (void) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::close_i (void) { // Protect against "double-deletion" in case the destructor also // gets called. @@ -163,12 +163,12 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: for (size_t i = 0; i < this->total_size_; i++) { // Destroy the dummy entry. - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *entry = &this->table_[i]; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *entry = &this->table_[i]; // The second argument results in a no-op instead of // deallocation. ACE_DES_FREE_TEMPLATE2 (entry, ACE_NOOP, - ACE_Hash_MultiMap_Entry, EXT_ID, INT_ID); + ACE_Hash_Multi_Map_Entry, EXT_ID, INT_ID); } // Reset size. @@ -185,22 +185,22 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_all_i (void) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_all_i (void) { // Iterate through the entire map calling the destuctor of each - // <ACE_Hash_MultiMap_Entry>. + // <ACE_Hash_Multi_Map_Entry>. for (size_t i = 0; i < this->total_size_; i++) { - for (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *temp_ptr = this->table_[i].next_; + for (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *temp_ptr = this->table_[i].next_; temp_ptr != &this->table_[i]; ) { - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *hold_ptr = temp_ptr; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *hold_ptr = temp_ptr; temp_ptr = temp_ptr->next_; // Explicitly call the destructor. ACE_DES_FREE_TEMPLATE2 (hold_ptr, this->entry_allocator_->free, - ACE_Hash_MultiMap_Entry, EXT_ID, INT_ID); + ACE_Hash_Multi_Map_Entry, EXT_ID, INT_ID); } // Restore the sentinel. @@ -214,9 +214,9 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind_i (const EXT_ID &ext_id, - const INT_ID &int_id, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind_i (const EXT_ID &ext_id, + const INT_ID &int_id, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) { size_t loc; int result = this->shared_find (ext_id, entry, loc); @@ -227,15 +227,15 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: void *ptr; // Not found. ACE_ALLOCATOR_RETURN (ptr, - this->entry_allocator_->malloc (sizeof (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>)), + this->entry_allocator_->malloc (sizeof (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>)), -1); int_id_set.insert (int_id); - entry = new (ptr) ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> (ext_id, - int_id_set, - this->table_[loc].next_, - &this->table_[loc]); + entry = new (ptr) ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> (ext_id, + int_id_set, + this->table_[loc].next_, + &this->table_[loc]); this->table_[loc].next_ = entry; entry->next_->prev_ = entry; this->cur_size_++; @@ -256,9 +256,9 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind_i (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) { size_t loc; int result = this->shared_find (ext_id, entry, loc); @@ -268,13 +268,13 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: void *ptr; // Not found. ACE_ALLOCATOR_RETURN (ptr, - this->entry_allocator_->malloc (sizeof (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>)), + this->entry_allocator_->malloc (sizeof (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>)), -1); - entry = new (ptr) ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> (ext_id, - int_id_set, - this->table_[loc].next_, - &this->table_[loc]); + entry = new (ptr) ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> (ext_id, + int_id_set, + this->table_[loc].next_, + &this->table_[loc]); this->table_[loc].next_ = entry; entry->next_->prev_ = entry; this->cur_size_++; @@ -285,9 +285,9 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::trybind_i (const EXT_ID &ext_id, - ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::trybind_i (const EXT_ID &ext_id, + ACE_Unbounded_Set<INT_ID> &int_id_set, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) { size_t loc; int result = this->shared_find (ext_id, entry, loc); @@ -297,13 +297,13 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: // Not found. void *ptr; ACE_ALLOCATOR_RETURN (ptr, - this->entry_allocator_->malloc (sizeof (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>)), + this->entry_allocator_->malloc (sizeof (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>)), -1); - entry = new (ptr) ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> (ext_id, - int_id_set, - this->table_[loc].next_, - &this->table_[loc]); + entry = new (ptr) ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> (ext_id, + int_id_set, + this->table_[loc].next_, + &this->table_[loc]); this->table_[loc].next_ = entry; entry->next_->prev_ = entry; this->cur_size_++; @@ -314,10 +314,10 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_i (const EXT_ID &ext_id, - ACE_Unbounded_Set<INT_ID> &int_id_set) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_i (const EXT_ID &ext_id, + ACE_Unbounded_Set<INT_ID> &int_id_set) { - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *temp; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *temp; size_t loc; int result = this->shared_find (ext_id, temp, loc); @@ -334,24 +334,24 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_i (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *entry) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_i (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *entry) { entry->next_->prev_ = entry->prev_; entry->prev_->next_ = entry->next_; // Explicitly call the destructor. ACE_DES_FREE_TEMPLATE2 (entry, this->entry_allocator_->free, - ACE_Hash_MultiMap_Entry, EXT_ID, INT_ID); + ACE_Hash_Multi_Map_Entry, EXT_ID, INT_ID); this->cur_size_--; return 0; } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_i (const EXT_ID &ext_id, - const INT_ID &int_id) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_i (const EXT_ID &ext_id, + const INT_ID &int_id) { - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *temp; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *temp; size_t loc; int result = this->shared_find (ext_id, temp, loc); @@ -378,13 +378,13 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::shared_find (const EXT_ID &ext_id, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry, - size_t &loc) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::shared_find (const EXT_ID &ext_id, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry, + size_t &loc) { loc = this->hash (ext_id) % this->total_size_; - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *temp = this->table_[loc].next_; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *temp = this->table_[loc].next_; while (temp != &this->table_[loc] && this->equal (temp->ext_id_, ext_id) == 0) temp = temp->next_; @@ -402,9 +402,9 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) { size_t dummy; if (this->shared_find (ext_id, entry, dummy) == -1) @@ -418,10 +418,10 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Unbounded_Set<INT_ID> &old_int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + ACE_Unbounded_Set<INT_ID> &old_int_id_set, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) { size_t dummy; if (this->shared_find (ext_id, entry, dummy) == -1) @@ -436,11 +436,11 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - EXT_ID &old_ext_id, - ACE_Unbounded_Set<INT_ID> &old_int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + EXT_ID &old_ext_id, + ACE_Unbounded_Set<INT_ID> &old_int_id_set, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) { size_t dummy; if (this->shared_find (ext_id, entry, dummy) == -1) @@ -457,12 +457,12 @@ ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>:: // ------------------------------------------------------------ -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_MultiMap_Iterator_Base_Ex) +ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Multi_Map_Iterator_Base) template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> void -ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i (void) const +ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i (void) const { - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i"); + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i"); ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("index_ = %d "), this->index_)); @@ -471,9 +471,9 @@ ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_L } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i (void) +ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i (void) { - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i"); + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i"); if (this->map_man_->table_ == 0) return -1; @@ -501,9 +501,9 @@ ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_L } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i (void) +ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i (void) { - ACE_TRACE ("ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i"); + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i"); if (this->map_man_->table_ == 0) return -1; @@ -531,12 +531,12 @@ ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_L // ------------------------------------------------------------ -ACE_ALLOC_HOOK_DEFINE(ACE_Hash_MultiMap_Const_Iterator_Base_Ex) +ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Multi_Map_Const_Iterator_Base) template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> void -ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i (void) const +ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i (void) const { - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i"); + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump_i"); ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("index_ = %d "), this->index_)); @@ -545,9 +545,9 @@ ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i (void) +ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i (void) { - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i"); + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i"); if (this->map_man_->table_ == 0) return -1; @@ -575,9 +575,9 @@ ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, } template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int -ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i (void) +ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i (void) { - ACE_TRACE ("ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i"); + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i"); if (this->map_man_->table_ == 0) return -1; @@ -605,4 +605,4 @@ ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_END_VERSIONED_NAMESPACE_DECL -#endif /* ACE_Hash_MultiMap_Manager_T_CPP */ +#endif /* ACE_Hash_Multi_Map_Manager_T_CPP */ diff --git a/ACE/ace/Hash_MultiMap_Manager_T.h b/ACE/ace/Hash_Multi_Map_Manager_T.h index e92cd81ff15..617ca7bf2b3 100644 --- a/ACE/ace/Hash_MultiMap_Manager_T.h +++ b/ACE/ace/Hash_Multi_Map_Manager_T.h @@ -2,20 +2,28 @@ //============================================================================= /** - * @file Hash_MultiMap_Manager_T.h + * @file Hash_Multi_Map_Manager_T.h * - * $Id$ + * $Id$ * - * The code in Hash_MultiMap_Manager_T.* was based on the code in Hash_Map_Manager_T.*. - * ACE_Hash_MultiMap_Manager uses ACE_Unbounded_Set to store differet values with the - * same key. + * The code in Hash_Multi_Map_Manager_T.* was based on the code in + * Hash_Map_Manager_T.*. * - * @author Shanshan Jiang <shanshan.jiang@vanderbilt.edu> + * ACE_Hash_Multi_Map_Manager maps a key type to more than one value types. + * The template takes the key and value types as parameters. The bind and + * unbind operations can take a key and the value or the set of the values that + * is to be associated with that key. The find operation can take a key or a + * key and the value that is associated with the key. + * + * ACE_Hash_Multi_Map_Manager uses ACE_Unbounded_Set to store differet values + * with the same key. + * + * @author Shanshan Jiang <shanshan.jiang@vanderbilt.edu> */ //============================================================================= -#ifndef ACE_HASH_MULTIMAP_MANAGER_T_H -#define ACE_HASH_MULTIMAP_MANAGER_T_H +#ifndef ACE_HASH_MULTI_MAP_MANAGER_T_H +#define ACE_HASH_MULTI_MAP_MANAGER_T_H #include /**/ "ace/pre.h" #include "ace/config-all.h" @@ -33,12 +41,12 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL /** - * @class ACE_Hash_MultiMap_Entry + * @class ACE_Hash_Multi_Map_Entry * * @brief Define an entry in the hash table. */ template <class EXT_ID, class INT_ID> -class ACE_Hash_MultiMap_Entry +class ACE_Hash_Multi_Map_Entry { public: friend class ACE_Unbounded_Set<INT_ID>; @@ -48,18 +56,18 @@ public: // = Initialization and termination methods. /// Constructor. - ACE_Hash_MultiMap_Entry (const EXT_ID &ext_id, - const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *next = 0, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *prev = 0); + ACE_Hash_Multi_Map_Entry (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *next = 0, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *prev = 0); /// Constructor. - ACE_Hash_MultiMap_Entry (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *next, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *prev); + ACE_Hash_Multi_Map_Entry (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *next, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *prev); # if ! defined (ACE_HAS_BROKEN_NOOP_DTORS) /// Destructor. - ~ACE_Hash_MultiMap_Entry (void); + ~ACE_Hash_Multi_Map_Entry (void); #endif /* ! defined (ACE_HAS_BROKEN_NOOP_DTORS) */ /// Key accessor. @@ -77,10 +85,10 @@ public: ACE_Unbounded_Set<INT_ID> int_id_set_; /// Pointer to the next item in the bucket of overflow nodes. - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *next_; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *next_; /// Pointer to the prev item in the bucket of overflow nodes. - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *prev_; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *prev_; /// Dump the state of an object. void dump (void) const; @@ -88,33 +96,33 @@ public: // Forward decl. template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Iterator_Base_Ex; +class ACE_Hash_Multi_Map_Iterator_Base; // Forward decl. template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Const_Iterator_Base_Ex; +class ACE_Hash_Multi_Map_Const_Iterator_Base; // Forward decl. template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Iterator_Ex; +class ACE_Hash_Multi_Map_Iterator; // Forward decl. template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Const_Iterator_Ex; +class ACE_Hash_Multi_Map_Const_Iterator; // Forward decl. template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Reverse_Iterator_Ex; +class ACE_Hash_Multi_Map_Reverse_Iterator; // Forward decl. template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Bucket_Iterator; +class ACE_Hash_Multi_Map_Bucket_Iterator; // Forward decl. class ACE_Allocator; /** - * @class ACE_Hash_MultiMap_Manager_Ex + * @class ACE_Hash_Multi_Map_Manager * * @brief Define a multi-map abstraction that efficiently associates * <EXT_ID>s with <INT_ID>s. @@ -128,81 +136,81 @@ class ACE_Allocator; */ template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Manager_Ex +class ACE_Hash_Multi_Map_Manager { public: - friend class ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>; - friend class ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>; - friend class ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>; - friend class ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>; - friend class ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>; - friend class ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>; + friend class ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>; + friend class ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>; + friend class ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>; + friend class ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>; + friend class ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>; + friend class ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>; typedef EXT_ID KEY; typedef INT_ID VALUE; typedef ACE_LOCK lock_type; - typedef ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> + typedef ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> ENTRY; // = ACE-style iterator typedefs. - typedef ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> + typedef ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> ITERATOR; - typedef ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> + typedef ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> CONST_ITERATOR; - typedef ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> + typedef ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> REVERSE_ITERATOR; // = STL-style iterator typedefs. - typedef ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> + typedef ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> iterator; - typedef ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> + typedef ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> const_iterator; - typedef ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> + typedef ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> reverse_iterator; // = Initialization and termination methods. /** - * Initialize a @c Hash_MultiMap_Manager_Ex with default size elements. + * Initialize a @c Hash_Multi_Map_Manager with default size elements. * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof (ACE_Hash_MultiMap_Entry<EXT_ID, - * ACE_Unbounded_Set<INT_ID> >). + * table_, so it should supply size*sizeof ( + * ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>). * @param entry_alloc is a pointer to an additional allocator for * entries, so it should be able to allocate 'size' / chunks - * of sizeof(ACE_Hash_MultiMap_Entry<EXT_ID, ACE_Unbounded_Set<INT_ID> >) bytes each. + * of sizeof(ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>) bytes each. * If @c table_alloc is 0 it defaults to @c ACE_Allocator::instance(). * If @c entry_alloc is 0 then it defaults to the same allocator as * @c table_alloc. */ - ACE_Hash_MultiMap_Manager_Ex (ACE_Allocator *table_alloc = 0, - ACE_Allocator *entry_alloc = 0); + ACE_Hash_Multi_Map_Manager (ACE_Allocator *table_alloc = 0, + ACE_Allocator *entry_alloc = 0); /** - * Initialize a @c Hash_MultiMap_Manager_Ex with @c size elements. + * Initialize a @c Hash_Multi_Map_Manager with @c size elements. * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof (ACE_Hash_MultiMap_Entry<EXT_ID, - * ACE_Unbounded_Set<INT_ID> >). + * table_, so it should supply size*sizeof ( + * ACE_Hash_Multi_Map_Entry<EXT_ID, <INT_ID>). * @param entry_alloc is a pointer to an additional allocator for * entries, so it should be able to allocate 'size' / chunks - * of sizeof(ACE_Hash_MultiMap_Entry<EXT_ID, ACE_Unbounded_Set<INT_ID> >) bytes each. + * of sizeof(ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>) bytes each. * If @c table_alloc is 0 it defaults to @c ACE_Allocator::instance(). * If @c entry_alloc is 0 then it defaults to the same allocator as * @c table_alloc. */ - ACE_Hash_MultiMap_Manager_Ex (size_t size, - ACE_Allocator *table_alloc = 0, - ACE_Allocator *entry_alloc = 0); + ACE_Hash_Multi_Map_Manager (size_t size, + ACE_Allocator *table_alloc = 0, + ACE_Allocator *entry_alloc = 0); /** - * Initialize a @c Hash_MultiMap_Manager_Ex with @c size elements. + * Initialize a @c Hash_Multi_Map_Manager with @c size elements. * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof (ACE_Hash_MultiMap_Entry<EXT_ID, - * ACE_Unbounded_Set<INT_ID> >). + * table_, so it should supply size*sizeof + * (ACE_Hash_Multi_Map_Entry<EXT_ID, <INT_ID>). * @param entry_alloc is a pointer to an additional allocator for * entries, so it should be able to allocate 'size' / chunks - * of sizeof(ACE_Hash_MultiMap_Entry<EXT_ID, ACE_Unbounded_Set<INT_ID> >) bytes each. + * of sizeof(ACE_Hash_Multi_Map_Entry<EXT_ID, <INT_ID>) bytes each. * If @c table_alloc is 0 it defaults to @c ACE_Allocator::instance(). * If @c entry_alloc is 0 then it defaults to the same allocator as * @c table_alloc. @@ -213,20 +221,20 @@ public: ACE_Allocator *table_alloc = 0, ACE_Allocator *entry_alloc = 0); - /// Close down a <Hash_MultiMap_Manager_Ex> and release dynamically allocated + /// Close down a <Hash_Multi_Map_Manager> and release dynamically allocated /// resources. int close (void); - /// Removes all the entries in <Map_Manager_Ex>. + /// Removes all the entries in <Map_Manager>. int unbind_all (void); - /// Cleanup the <Hash_MultiMap_Manager_Ex>. - ~ACE_Hash_MultiMap_Manager_Ex (void); + /// Cleanup the <Hash_Multi_Map_Manager>. + ~ACE_Hash_Multi_Map_Manager (void); /** - * Associate <ext_id> with <int_id>. If <ext_id> and <int_id> is already in the - * map then the <ACE_Hash_MultiMap_Entry> is not changed. Returns 0 if a - * new entry is bound successfully, returns 1 if an attempt is made + * Associate <ext_id> with <int_id>. If <ext_id> and <int_id> is already in + * the map then the <ACE_Hash_Multi_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. */ int bind (const EXT_ID &ext_id, @@ -239,11 +247,11 @@ public: */ int bind (const EXT_ID &ext_id, const INT_ID &int_id, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /** * Associate <ext_id> with <int_id_set>. If <ext_id> is already in the - * map then the <ACE_Hash_MultiMap_Entry> is not changed. Returns 0 if a + * map then the <ACE_Hash_Multi_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. */ @@ -257,7 +265,7 @@ public: */ int bind (const EXT_ID &ext_id, const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /** * Associate <ext_id> with <int_id_set> if and only if <ext_id> is not @@ -276,7 +284,7 @@ public: */ int trybind (const EXT_ID &ext_id, ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /** * Reassociate <ext_id> with <int_id_set>. If <ext_id> is not in the @@ -294,7 +302,7 @@ public: */ int rebind (const EXT_ID &ext_id, const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /** * Associate <ext_id> with <int_id_set>. If <ext_id> is not in the map @@ -315,14 +323,14 @@ public: int rebind (const EXT_ID &ext_id, const ACE_Unbounded_Set<INT_ID> &int_id_set, ACE_Unbounded_Set<INT_ID> &old_int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /** * Associate <ext_id> with <int_id_set>. If <ext_id> is not in the map * then behaves just like <bind>. Otherwise, store the old values * of <ext_id> and <int_id_set> into the "out" parameters and rebind the * new parameters. This is very useful if you need to have an - * atomic way of updating <ACE_Hash_MultiMap_Entrys> and you also need + * atomic way of updating <ACE_Hash_Multi_Map_Entrys> 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. @@ -341,7 +349,7 @@ public: const ACE_Unbounded_Set<INT_ID> &int_id_set, EXT_ID &old_ext_id, ACE_Unbounded_Set<INT_ID> &old_int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /// Locate <ext_id> and pass out parameter via <int_id_set>. /// Return 0 if found, returns -1 if not found. @@ -359,7 +367,7 @@ public: /// Locate <ext_id> and pass out parameter via <entry>. If found, /// return 0, returns -1 if not found. int find (const EXT_ID &ext_id, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry) const; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) const; /** * Unbind (remove) the <ext_id> from the map. Don't return the @@ -381,14 +389,14 @@ public: /// Remove entry from map. Return 0 if the unbind was successfully, /// and returns -1 if failures occur. - int unbind (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *entry); + int unbind (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *entry); - /// Returns the current number of ACE_Hash_MultiMap_Entry objects in the + /// Returns the current number of ACE_Hash_Multi_Map_Entry objects in the /// hash table. size_t current_size (void) const; /// Return the size of the array that's used to point to the - /// linked lists of ACE_Hash_MultiMap_Entry objects in the hash table. + /// linked lists of ACE_Hash_Multi_Map_Entry objects in the hash table. size_t total_size (void) const; /** @@ -407,12 +415,12 @@ public: // = STL styled iterator factory functions. /// Return forward iterator. - ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> begin (void); - ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> end (void); + ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> begin (void); + ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> end (void); /// Return reverse iterator. - ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> rbegin (void); - ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> rend (void); + ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> rbegin (void); + ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> rend (void); protected: // = The following methods do the actual work. @@ -434,7 +442,7 @@ protected: /// Performs bind. Must be called with locks held. int bind_i (const EXT_ID &ext_id, const INT_ID &int_id, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /// Performs bind. Must be called with locks held. int bind_i (const EXT_ID &ext_id, @@ -443,7 +451,7 @@ protected: /// Performs bind. Must be called with locks held. int bind_i (const EXT_ID &ext_id, const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /// Performs trybind. Must be called with locks held. int trybind_i (const EXT_ID &ext_id, @@ -452,7 +460,7 @@ protected: /// Performs trybind. Must be called with locks held. int trybind_i (const EXT_ID &ext_id, ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /// Performs rebind. Must be called with locks held. int rebind_i (const EXT_ID &ext_id, @@ -461,7 +469,7 @@ protected: /// Performs rebind. Must be called with locks held. int rebind_i (const EXT_ID &ext_id, const ACE_Unbounded_Set<INT_ID> &int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /// Performs rebind. Must be called with locks held. int rebind_i (const EXT_ID &ext_id, @@ -472,7 +480,7 @@ protected: int rebind_i (const EXT_ID &ext_id, const ACE_Unbounded_Set<INT_ID> &int_id_set, ACE_Unbounded_Set<INT_ID> &old_int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /// Performs rebind. Must be called with locks held. int rebind_i (const EXT_ID &ext_id, @@ -485,7 +493,7 @@ protected: const ACE_Unbounded_Set<INT_ID> &int_id_set, EXT_ID &old_ext_id, ACE_Unbounded_Set<INT_ID> &old_int_id_set, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /// Performs a find of <int_id_set> using <ext_id> as the key. Must be /// called with locks held. @@ -504,7 +512,7 @@ protected: /// Performs a find using <ext_id> as the key. Must be called with /// locks held. int find_i (const EXT_ID &ext_id, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry); /// Performs unbind. Must be called with locks held. int unbind_i (const EXT_ID &ext_id, @@ -518,7 +526,7 @@ protected: int unbind_i (const EXT_ID &ext_id); /// Performs unbind. Must be called with locks held. - int unbind_i (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *entry); + int unbind_i (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *entry); /** * Resize the map. Must be called with locks held. @@ -527,25 +535,25 @@ protected: */ int create_buckets (size_t size); - /// Close down a <Map_Manager_Ex>. Must be called with + /// Close down a <Map_Manager>. Must be called with /// locks held. int close_i (void); - /// Removes all the entries in <Map_Manager_Ex>. Must be called with + /// Removes all the entries in <Map_Manager>. Must be called with /// locks held. int unbind_all_i (void); /// Pointer to a memory allocator used for table_, so it should - /// supply size*sizeof (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>), + /// supply size*sizeof (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>), ACE_Allocator *table_allocator_; /// Addidtional allocator for entries, so it should be able to - /// allocate 'size' / chunks of sizeof(ACE_Hash_MultiMap_Entry<EXT_ID, + /// allocate 'size' / chunks of sizeof(ACE_Hash_Multi_Map_Entry<EXT_ID, /// INT_ID>) bytes each. ACE_Allocator *entry_allocator_; /// Synchronization variable for the MT_SAFE - /// @c ACE_Hash_MultiMap_Manager_Ex. + /// @c ACE_Hash_Multi_Map_Manager. ACE_LOCK lock_; /// Function object used for hashing keys. @@ -555,24 +563,24 @@ protected: COMPARE_KEYS compare_keys_; protected: - /// Returns the <ACE_Hash_MultiMap_Entry> that corresponds to <ext_id>. + /// Returns the <ACE_Hash_Multi_Map_Entry> that corresponds to <ext_id>. int shared_find (const EXT_ID &ext_id, - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&entry, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry, size_t &loc); /// Accessor of the underlying table - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *table (void); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *table (void); /// Accessor of the current size attribute size_t cur_size (void) const; private: /** - * Array of <ACE_Hash_MultiMap_Entry> *s, each of which points to an - * <ACE_Hash_MultiMap_Entry> that serves as the beginning of a linked + * Array of <ACE_Hash_Multi_Map_Entry> *s, each of which points to an + * <ACE_Hash_Multi_Map_Entry> that serves as the beginning of a linked * list of <EXT_ID>s that hash to that bucket. */ - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *table_; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *table_; /// Total size of the hash table. size_t total_size_; @@ -583,50 +591,50 @@ private: size_t cur_size_; // = Disallow these operations. - ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &)) - ACE_UNIMPLEMENTED_FUNC (ACE_Hash_MultiMap_Manager_Ex (const ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &)) + ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &)) + ACE_UNIMPLEMENTED_FUNC (ACE_Hash_Multi_Map_Manager (const ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &)) }; /** - * @class ACE_Hash_MultiMap_Iterator_Base_Ex + * @class ACE_Hash_Multi_Map_Iterator_Base * - * @brief Base iterator for the <ACE_Hash_MultiMap_Manager_Ex> + * @brief Base iterator for the <ACE_Hash_Multi_Map_Manager> * * This class factors out common code from its templatized * subclasses. */ template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Iterator_Base_Ex +class ACE_Hash_Multi_Map_Iterator_Base { public: // = Initialization method. /// Contructor. If head != 0, the iterator constructed is positioned /// at the head of the map, it is positioned at the end otherwise. - ACE_Hash_MultiMap_Iterator_Base_Ex (ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, - int head); + ACE_Hash_Multi_Map_Iterator_Base (ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, + int head); // = ITERATION methods. /// Pass back the next <entry> that hasn't been seen in the Set. /// Returns 0 when all items have been seen, else 1. - int next (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&next_entry) const; + int next (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&next_entry) const; /// Returns 1 when all items have been seen, else 0. int done (void) const; /// Returns a reference to the interal element <this> is pointing to. - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>& operator* (void) const; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>& operator* (void) const; /// Returns a pointer to the interal element <this> is pointing to. - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>* operator-> (void) const; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>* operator-> (void) const; - /// Returns reference the Hash_MultiMap_Manager_Ex that is being iterated + /// Returns reference the Hash_Multi_Map_Manager that is being iterated /// over. - ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& map (void); + ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& map (void); /// Check if two iterators point to the same position - bool operator== (const ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const; - bool operator!= (const ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const; + bool operator== (const ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const; + bool operator!= (const ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const; /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; @@ -644,56 +652,56 @@ protected: void dump_i (void) const; /// Map we are iterating over. - ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *map_man_; + ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *map_man_; /// Keeps track of how far we've advanced in the table. ssize_t index_; /// Keeps track of how far we've advanced in a linked list in each /// table slot. - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *next_; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *next_; }; /** - * @class ACE_Hash_MultiMap_Const_Iterator_Base_Ex + * @class ACE_Hash_Multi_Map_Const_Iterator_Base * - * @brief Base const iterator for the <ACE_Hash_MultiMap_Manager_Ex> + * @brief Base const iterator for the <ACE_Hash_Multi_Map_Manager> * * This class factors out common code from its templatized * subclasses. */ template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Const_Iterator_Base_Ex +class ACE_Hash_Multi_Map_Const_Iterator_Base { public: // = Initialization method. /// Contructor. If head != 0, the iterator constructed is positioned /// at the head of the map, it is positioned at the end otherwise. - ACE_Hash_MultiMap_Const_Iterator_Base_Ex (const ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, - int head); + ACE_Hash_Multi_Map_Const_Iterator_Base (const ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, + int head); // = ITERATION methods. /// Pass back the next <entry> that hasn't been seen in the Set. /// Returns 0 when all items have been seen, else 1. - int next (ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *&next_entry) const; + int next (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&next_entry) const; /// Returns 1 when all items have been seen, else 0. int done (void) const; /// Returns a reference to the interal element <this> is pointing to. - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>& operator* (void) const; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>& operator* (void) const; /// Returns a pointer to the interal element <this> is pointing to. - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>* operator-> (void) const; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>* operator-> (void) const; - /// Returns reference the Hash_MultiMap_Manager_Ex that is being iterated + /// Returns reference the Hash_Multi_Map_Manager that is being iterated /// over. - const ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& map (void); + const ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& map (void); /// Check if two iterators point to the same position - bool operator== (const ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const; - bool operator!= (const ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const; + bool operator== (const ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const; + bool operator!= (const ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const; /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; @@ -711,35 +719,35 @@ protected: void dump_i (void) const; /// Map we are iterating over. - const ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *map_man_; + const ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *map_man_; /// Keeps track of how far we've advanced in the table. ssize_t index_; /// Keeps track of how far we've advanced in a linked list in each /// table slot. - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *next_; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *next_; }; /** - * @class ACE_Hash_MultiMap_Iterator_Ex + * @class ACE_Hash_Multi_Map_Iterator * - * @brief Forward iterator for the <ACE_Hash_MultiMap_Manager_Ex>. + * @brief Forward iterator for the <ACE_Hash_Multi_Map_Manager>. * * This class does not perform any internal locking of the - * <ACE_Hash_MultiMap_Manager_Ex> it is iterating upon since locking is + * <ACE_Hash_Multi_Map_Manager> it is iterating upon since locking is * inherently inefficient and/or error-prone within an STL-style * iterator. If you require locking, you can explicitly use an - * ACE_Guard or ACE_Read_Guard on the <ACE_Hash_MultiMap_Manager_Ex>'s + * ACE_Guard or ACE_Read_Guard on the <ACE_Hash_Multi_Map_Manager>'s * internal lock, which is accessible via its <mutex> method. */ template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Iterator_Ex : public ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +class ACE_Hash_Multi_Map_Iterator : public ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> { public: // = Initialization method. - ACE_Hash_MultiMap_Iterator_Ex (ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, - int tail = 0); + ACE_Hash_Multi_Map_Iterator (ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, + int tail = 0); // = Iteration methods. /// Move forward by one element in the set. Returns 0 when all the @@ -752,40 +760,40 @@ public: // = STL styled iteration, compare, and reference functions. /// Prefix advance. - ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator++ (void); + ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator++ (void); /// Postfix advance. - ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator++ (int); + ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator++ (int); /// Prefix reverse. - ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator-- (void); + ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator-- (void); /// Postfix reverse. - ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator-- (int); + ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator-- (int); /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; }; /** - * @class ACE_Hash_MultiMap_Const_Iterator_Ex + * @class ACE_Hash_Multi_Map_Const_Iterator * - * @brief Const forward iterator for the <ACE_Hash_MultiMap_Manager_Ex>. + * @brief Const forward iterator for the <ACE_Hash_Multi_Map_Manager>. * * This class does not perform any internal locking of the - * <ACE_Hash_MultiMap_Manager_Ex> it is iterating upon since locking is + * <ACE_Hash_Multi_Map_Manager> it is iterating upon since locking is * inherently inefficient and/or error-prone within an STL-style * iterator. If you require locking, you can explicitly use an - * ACE_Guard or ACE_Read_Guard on the <ACE_Hash_MultiMap_Manager_Ex>'s + * ACE_Guard or ACE_Read_Guard on the <ACE_Hash_Multi_Map_Manager>'s * internal lock, which is accessible via its <mutex> method. */ template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Const_Iterator_Ex : public ACE_Hash_MultiMap_Const_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +class ACE_Hash_Multi_Map_Const_Iterator : public ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> { public: // = Initialization method. - ACE_Hash_MultiMap_Const_Iterator_Ex (const ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, - int tail = 0); + ACE_Hash_Multi_Map_Const_Iterator (const ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, + int tail = 0); // = Iteration methods. /// Move forward by one element in the set. Returns 0 when all the @@ -798,33 +806,33 @@ public: // = STL styled iteration, compare, and reference functions. /// Prefix advance. - ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator++ (void); + ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator++ (void); /// Postfix advance. - ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator++ (int); + ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator++ (int); /// Prefix reverse. - ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator-- (void); + ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator-- (void); /// Postfix reverse. - ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator-- (int); + ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator-- (int); /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; }; /** - * @class ACE_Hash_MultiMap_Bucket_Iterator + * @class ACE_Hash_Multi_Map_Bucket_Iterator * - * @brief Forward iterator for the <ACE_Hash_MultiMap_Manager_Ex> which + * @brief Forward iterator for the <ACE_Hash_Multi_Map_Manager> which * only traverses a particular bucket. The particular bucket is * specified by the <EXT_ID> parameter specified in the constructor. * * This class does not perform any internal locking of the - * <ACE_Hash_MultiMap_Manager_Ex> it is iterating upon since locking is + * <ACE_Hash_Multi_Map_Manager> it is iterating upon since locking is * inherently inefficient and/or error-prone within an STL-style * iterator. If you require locking, you can explicitly use an - * ACE_Guard or ACE_Read_Guard on the <ACE_Hash_MultiMap_Manager_Ex>'s + * ACE_Guard or ACE_Read_Guard on the <ACE_Hash_Multi_Map_Manager>'s * internal lock, which is accessible via its <mutex> method. * * Note that a creation method for this new iterator cannot be added @@ -833,41 +841,41 @@ public: * templates. */ template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Bucket_Iterator +class ACE_Hash_Multi_Map_Bucket_Iterator { public: // = Initialization method. - ACE_Hash_MultiMap_Bucket_Iterator (ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, - const EXT_ID &ext_id, - int tail = 0); + ACE_Hash_Multi_Map_Bucket_Iterator (ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, + const EXT_ID &ext_id, + int tail = 0); // = STL styled iteration, compare, and reference functions. /// Prefix advance. - ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator++ (void); + ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator++ (void); /// Postfix advance. - ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator++ (int); + ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator++ (int); /// Prefix reverse. - ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator-- (void); + ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator-- (void); /// Postfix reverse. - ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator-- (int); + ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator-- (int); /// Returns a reference to the interal element <this> is pointing to. - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>& operator* (void) const; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>& operator* (void) const; /// Returns a pointer to the interal element <this> is pointing to. - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>* operator-> (void) const; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>* operator-> (void) const; - /// Returns reference the Hash_MultiMap_Manager_Ex that is being iterated + /// Returns reference the Hash_Multi_Map_Manager that is being iterated /// over. - ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& map (void); + ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& map (void); /// Check if two iterators point to the same position - bool operator== (const ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const; - bool operator!= (const ACE_Hash_MultiMap_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const; + bool operator== (const ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const; + bool operator!= (const ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const; protected: /// Move forward by one element in the set. Returns 0 when there's @@ -879,35 +887,35 @@ protected: int reverse_i (void); /// Map we are iterating over. - ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *map_man_; + ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *map_man_; /// Keeps track of how far we've advanced in the table. ssize_t index_; /// Keeps track of how far we've advanced in a linked list in each /// table slot. - ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID> *next_; + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *next_; }; /** - * @class ACE_Hash_MultiMap_Reverse_Iterator_Ex + * @class ACE_Hash_Multi_Map_Reverse_Iterator * - * @brief Reverse iterator for the <ACE_Hash_MultiMap_Manager_Ex>. + * @brief Reverse iterator for the <ACE_Hash_Multi_Map_Manager>. * * This class does not perform any internal locking of the - * <ACE_Hash_MultiMap_Manager_Ex> it is iterating upon since locking is + * <ACE_Hash_Multi_Map_Manager> it is iterating upon since locking is * inherently inefficient and/or error-prone within an STL-style * iterator. If you require locking, you can explicitly use an - * ACE_Guard or ACE_Read_Guard on the <ACE_Hash_MultiMap_Manager_Ex>'s + * ACE_Guard or ACE_Read_Guard on the <ACE_Hash_Multi_Map_Manager>'s * internal lock, which is accessible via its <mutex> method. */ template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> -class ACE_Hash_MultiMap_Reverse_Iterator_Ex : public ACE_Hash_MultiMap_Iterator_Base_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +class ACE_Hash_Multi_Map_Reverse_Iterator : public ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> { public: // = Initialization method. - ACE_Hash_MultiMap_Reverse_Iterator_Ex (ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, - int head = 0); + ACE_Hash_Multi_Map_Reverse_Iterator (ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, + int head = 0); // = Iteration methods. /// Move forward by one element in the set. Returns 0 when all the @@ -920,181 +928,34 @@ public: // = STL styled iteration, compare, and reference functions. /// Prefix reverse. - ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator++ (void); + ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator++ (void); /// Postfix reverse. - ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator++ (int); + ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator++ (int); /// Prefix advance. - ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator-- (void); + ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &operator-- (void); /// Postfix advance. - ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator-- (int); + ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> operator-- (int); /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; }; -/** - * @class ACE_Hash_MultiMap_Manager - * - * @brief Wrapper for backward compatibility. - * - * This implementation of a map uses a hash table. This class - * expects that the <EXT_ID> contains a method called <hash>. - * In addition, the <EXT_ID> must support <operator==>. Both of - * these constraints can be alleviated via template - * specialization, as shown in the $ACE_ROOT/tests/Conn_Test.cpp - * test. - * - * <b> Requirements and Performance Characteristics</b> - * - Internal Structure - * Hash Table - * - Duplicates allowed? - * No - * - Random access allowed? - * Yes - * - Search speed - * O(1) - * - Insert/replace speed - * O(1), can be longer if the hash map has to resize - * - Iterator still valid after change to container? - * Yes - * - Frees memory for removed elements? - * Yes - * - Items inserted by - * Value - * - Requirements for key type - * -# Default constructor - * -# Copy constructor - * -# operator= - * -# operator== - * - Requirements for object type - * -# Default constructor - * -# Copy constructor - * -# operator= - * -# operator< - */ -template <class EXT_ID, class INT_ID, class ACE_LOCK> -class ACE_Hash_MultiMap_Manager : public ACE_Hash_MultiMap_Manager_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> -{ -public: - - /** - * Initialize a @c Hash_MultiMap_Manager with default size elements. - * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof (ACE_Hash_MultiMap_Entry<EXT_ID, - * ACE_Unbounded_Set<INT_ID>>). - * @param entry_alloc is a pointer to an additional allocator for - * entries, so it should be able to allocate 'size' / chunks - * of sizeof(ACE_Hash_MultiMap_Entry<EXT_ID, ACE_Unbounded_Set<INT_ID> >) bytes each. - * If @c table_alloc is 0 it defaults to @c ACE_Allocator::instance(). - * If @c entry_alloc is 0 then it defaults to the same allocator as - * @c table_alloc. - */ - ACE_Hash_MultiMap_Manager (ACE_Allocator *table_alloc = 0, - ACE_Allocator *entry_alloc = 0); - - /** - * Initialize a @c Hash_MultiMap_Manager with @c size elements. - * @param table_alloc is a pointer to a memory allocator used for - * table_, so it should supply size*sizeof (ACE_Hash_MultiMap_Entry<EXT_ID, - * ACE_Unbounded_Set<INT_ID>>). - * @param entry_alloc is a pointer to an additional allocator for - * entries, so it should be able to allocate 'size' / chunks - * of sizeof(ACE_Hash_MultiMap_Entry<EXT_ID, INT_ID>) bytes each. - * If @c table_alloc is 0 it defaults to @c ACE_Allocator::instance(). - * If @c entry_alloc is 0 then it defaults to the same allocator as - * @c table_alloc. - */ - ACE_Hash_MultiMap_Manager (size_t size, - ACE_Allocator *table_alloc = 0, - ACE_Allocator *entry_alloc = 0); - - // = The following two are necessary for template specialization of - // ACE_Hash_MultiMap_Manager to work. - int equal (const EXT_ID &id1, const EXT_ID &id2); - u_long hash (const EXT_ID &ext_id); -}; - -/** - * @class ACE_Hash_MultiMap_Iterator - * - * @brief Wrapper for backward compatibility. - */ -template <class EXT_ID, class INT_ID, class ACE_LOCK> -class ACE_Hash_MultiMap_Iterator : public ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> -{ -public: - // = Initialization method. - /// Construct from map - ACE_Hash_MultiMap_Iterator (ACE_Hash_MultiMap_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm, - int tail = 0); - - /// Construct from base - ACE_Hash_MultiMap_Iterator (const ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base); - - /// Assignment from base - ACE_Hash_MultiMap_Iterator<EXT_ID, INT_ID, ACE_LOCK> & - operator= (const ACE_Hash_MultiMap_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base); -}; - -/** - * @class ACE_Hash_MultiMap_Const_Iterator - * - * @brief Wrapper for backward compatibility. - */ -template <class EXT_ID, class INT_ID, class ACE_LOCK> -class ACE_Hash_MultiMap_Const_Iterator : public ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> -{ -public: - // = Initialization method. - /// Construct from map - ACE_Hash_MultiMap_Const_Iterator (const ACE_Hash_MultiMap_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm, - int tail = 0); - - /// Construct from base - ACE_Hash_MultiMap_Const_Iterator (const ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base); - - /// Assignment from base - ACE_Hash_MultiMap_Const_Iterator<EXT_ID, INT_ID, ACE_LOCK> & - operator= (const ACE_Hash_MultiMap_Const_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base); -}; - -/** - * @class ACE_Hash_MultiMap_Reverse_Iterator - * - * @brief Wrapper for backward compatibility. - */ -template <class EXT_ID, class INT_ID, class ACE_LOCK> -class ACE_Hash_MultiMap_Reverse_Iterator : public ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> -{ -public: - // = Initialization method. - ACE_Hash_MultiMap_Reverse_Iterator (ACE_Hash_MultiMap_Manager<EXT_ID, INT_ID, ACE_LOCK> &mm, - int head = 0); - - /// Construct from base - ACE_Hash_MultiMap_Reverse_Iterator (const ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base); - - /// Assignment from base - ACE_Hash_MultiMap_Reverse_Iterator<EXT_ID, INT_ID, ACE_LOCK> & - operator= (const ACE_Hash_MultiMap_Reverse_Iterator_Ex<EXT_ID, INT_ID, ACE_Hash<EXT_ID>, ACE_Equal_To<EXT_ID>, ACE_LOCK> &base); -}; - ACE_END_VERSIONED_NAMESPACE_DECL #if defined (__ACE_INLINE__) -# include "ace/Hash_MultiMap_Manager_T.inl" +# include "ace/Hash_Multi_Map_Manager_T.inl" #endif /* __ACE_INLINE__ */ #if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "ace/Hash_MultiMap_Manager_T.cpp" +#include "ace/Hash_Multi_Map_Manager_T.cpp" #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Hash_MultiMap_Manager_T.cpp") +#pragma implementation ("Hash_Multi_Map_Manager_T.cpp") #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ #include /**/ "ace/post.h" -#endif /* ACE_HASH_MULTIMAP_MANAGER_T_H */ +#endif /* ACE_HASH_MULTI_MAP_MANAGER_T_H */ diff --git a/ACE/ace/Hash_Multi_Map_Manager_T.inl b/ACE/ace/Hash_Multi_Map_Manager_T.inl new file mode 100644 index 00000000000..4b57df90b15 --- /dev/null +++ b/ACE/ace/Hash_Multi_Map_Manager_T.inl @@ -0,0 +1,994 @@ +// -*- C++ -*- +// +// $Id$ + +#include "ace/Guard_T.h" + +ACE_BEGIN_VERSIONED_NAMESPACE_DECL + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Manager (size_t size, + ACE_Allocator *table_alloc, + ACE_Allocator *entry_alloc) + : table_allocator_ (table_alloc), + entry_allocator_ (entry_alloc), + table_ (0), + total_size_ (0), + cur_size_ (0) +{ + if (this->open (size, table_alloc, entry_alloc) == -1) + ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("ACE_Hash_Multi_Map_Manager\n"))); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Manager (ACE_Allocator *table_alloc, + ACE_Allocator *entry_alloc) + : table_allocator_ (table_alloc), + entry_allocator_ (entry_alloc), + table_ (0), + total_size_ (0), + cur_size_ (0) +{ + if (this->open (ACE_DEFAULT_MAP_SIZE, table_alloc, entry_alloc) == -1) + ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("ACE_Hash_Multi_Map_Manager\n"))); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::close (void) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->close_i (); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_all (void) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->unbind_all_i (); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::~ACE_Hash_Multi_Map_Manager (void) +{ + this->close (); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE size_t +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::current_size (void) const +{ + return this->cur_size_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE size_t +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::total_size (void) const +{ + return this->total_size_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE ACE_LOCK & +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::mutex (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Manager::mutex"); + return this->lock_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE u_long +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::hash (const EXT_ID &ext_id) +{ + return this->hash_key_ (ext_id); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::equal (const EXT_ID &id1, + const EXT_ID &id2) +{ + return this->compare_keys_ (id1, id2); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind_i (const EXT_ID &ext_id, + const INT_ID &int_id) +{ + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *temp; + + return this->bind_i (ext_id, int_id, temp); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind_i (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set) +{ + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *temp; + + return this->bind_i (ext_id, int_id_set, temp); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id, + const INT_ID &int_id) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->bind_i (ext_id, int_id); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id, + const INT_ID &int_id, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->bind_i (ext_id, int_id, entry); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->bind_i (ext_id, int_id_set); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->bind_i (ext_id, int_id_set, entry); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::trybind_i (const EXT_ID &ext_id, + ACE_Unbounded_Set<INT_ID> &int_id_set) +{ + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *temp; + + int result = this->trybind_i (ext_id, int_id_set, temp); + if (result == 1) + int_id_set = temp->int_id_set_; + return result; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::trybind (const EXT_ID &ext_id, + ACE_Unbounded_Set<INT_ID> &int_id_set) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->trybind_i (ext_id, int_id_set); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::trybind (const EXT_ID &ext_id, + ACE_Unbounded_Set<INT_ID> &int_id_set, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->trybind_i (ext_id, int_id_set, entry); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind_i (const EXT_ID &ext_id) +{ + ACE_Unbounded_Set<INT_ID> int_id_set; + + return this->unbind_i (ext_id, int_id_set); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind (const EXT_ID &ext_id, + ACE_Unbounded_Set<INT_ID> &int_id_set) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->unbind_i (ext_id, int_id_set); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind (const EXT_ID &ext_id, + const INT_ID &int_id) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->unbind_i (ext_id, int_id); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind (const EXT_ID &ext_id) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->unbind_i (ext_id) == -1 ? -1 : 0; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::unbind (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *entry) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->unbind_i (entry) == -1 ? -1 : 0; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &ext_id, + ACE_Unbounded_Set<INT_ID> &int_id_set) +{ + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *entry; + + size_t dummy; + if (this->shared_find (ext_id, entry, dummy) == -1) + return -1; + else + { + int_id_set = entry->int_id_set_; + return 0; + } +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &ext_id, + const INT_ID &int_id) +{ + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *entry; + + size_t dummy; + if (this->shared_find (ext_id, entry, dummy) == -1) + return -1; + else + { + if (0 == entry->int_id_set_.find (int_id)) + return 0; + else + return -1; + } +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &ext_id) +{ + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *entry; + + size_t dummy; + return this->shared_find (ext_id, entry, dummy); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id, + ACE_Unbounded_Set<INT_ID> &int_id_set) const +{ + ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *nc_this = + const_cast <ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *> + (this); + + ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); + + return nc_this->find_i (ext_id, int_id_set); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id, + const INT_ID &int_id) const +{ + ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *nc_this = + const_cast <ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *> + (this); + + ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); + + return nc_this->find_i (ext_id, int_id); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id) const +{ + ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *nc_this = + const_cast <ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *> + (this); + + ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); + + return nc_this->find_i (ext_id); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find_i (const EXT_ID &ext_id, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) +{ + size_t dummy; + return this->shared_find (ext_id, entry, dummy); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::find (const EXT_ID &ext_id, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) const +{ + ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *nc_this = + const_cast <ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> *> + (this); + + ACE_READ_GUARD_RETURN (ACE_LOCK, ace_mon, nc_this->lock_, -1); + + return nc_this->find_i (ext_id, entry); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set) +{ + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *node; + + return this->rebind_i (ext_id, + int_id_set, + node); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + ACE_Unbounded_Set<INT_ID> &old_int_id_set) +{ + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *node; + + return this->rebind_i (ext_id, + int_id_set, + old_int_id_set, + node); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind_i (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + EXT_ID &old_ext_id, + ACE_Unbounded_Set<INT_ID> &old_int_id_set) +{ + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *node; + + return this->rebind_i (ext_id, + int_id_set, + old_ext_id, + old_int_id_set, + node); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->rebind_i (ext_id, int_id_set); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->rebind_i (ext_id, int_id_set, entry); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + ACE_Unbounded_Set<INT_ID> &old_int_id_set) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->rebind_i (ext_id, int_id_set, old_int_id_set); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + ACE_Unbounded_Set<INT_ID> &old_int_id_set, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->rebind_i (ext_id, int_id_set, old_int_id_set, entry); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + EXT_ID &old_ext_id, + ACE_Unbounded_Set<INT_ID> &old_int_id_set) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->rebind_i (ext_id, int_id_set, old_ext_id, old_int_id_set); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_id, + const ACE_Unbounded_Set<INT_ID> &int_id_set, + EXT_ID &old_ext_id, + ACE_Unbounded_Set<INT_ID> &old_int_id_set, + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) +{ + ACE_WRITE_GUARD_RETURN (ACE_LOCK, ace_mon, this->lock_, -1); + + return this->rebind_i (ext_id, int_id_set, old_ext_id, old_int_id_set, entry); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::begin (void) +{ + return ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (*this); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::end (void) +{ + return ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (*this, 1); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rbegin (void) +{ + return ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (*this); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::rend (void) +{ + return ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (*this, 1); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> * +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::table (void) +{ + return this->table_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +size_t +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::cur_size (void) const +{ + return this->cur_size_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Iterator_Base (ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, + int head) + : map_man_ (&mm), + index_ (head != 0 ? -1 : (ssize_t) mm.total_size_), + next_ (0) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Iterator_Base"); + + if (mm.table_ != 0) + this->next_ = &mm.table_[head != 0 ? 0 : mm.total_size_ - 1]; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next"); + + if (this->map_man_->table_ != 0 + && this->index_ < static_cast<ssize_t> (this->map_man_->total_size_) + && this->index_ >= 0 + && this->next_ != &this->map_man_->table_[this->index_]) + { + entry = this->next_; + return 1; + } + else + return 0; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::done (void) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::done"); + + return this->map_man_->table_ == 0 + || this->index_ >= static_cast<ssize_t> (this->map_man_->total_size_) + || this->index_ < 0; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> & +ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator* (void) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator*"); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *retv = 0; + + int result = this->next (retv); + + ACE_UNUSED_ARG (result); + ACE_ASSERT (result != 0); + + return *retv; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> * +ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-> (void) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator->"); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *retv = 0; + + int result = this->next (retv); + + ACE_UNUSED_ARG (result); + ACE_ASSERT (result != 0); + + return retv; +} + +// Returns the reference to the Hash_Multi_Map_manager_ex that is being +// iterated over. +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& +ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map"); + return *this->map_man_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE bool +ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator== (const ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator=="); + return this->map_man_ == rhs.map_man_ + && this->index_ == rhs.index_ + && this->next_ == rhs.next_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE bool +ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!= (const ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!="); + return this->next_ != rhs.next_ + || this->index_ != rhs.index_ + || this->map_man_ != rhs.map_man_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Const_Iterator_Base (const ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, + int head) + : map_man_ (&mm), + index_ (head != 0 ? -1 : (ssize_t) mm.total_size_), + next_ (0) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Const_Iterator_Base"); + + if (mm.table_ != 0) + this->next_ = &mm.table_[head != 0 ? 0 : mm.total_size_ - 1]; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *&entry) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::next"); + + if (this->map_man_->table_ != 0 + && this->index_ < (ssize_t) this->map_man_->total_size_ + && this->index_ >= 0 + && this->next_ != &this->map_man_->table_[this->index_]) + { + entry = this->next_; + return 1; + } + else + return 0; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::done (void) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::done"); + + return this->map_man_->table_ == 0 + || this->index_ >= (ssize_t) this->map_man_->total_size_ + || this->index_ < 0; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> & +ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator* (void) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator*"); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *retv = 0; + + int result = this->next (retv); + + ACE_UNUSED_ARG (result); + ACE_ASSERT (result != 0); + + return *retv; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> * +ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-> (void) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator->"); + ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *retv = 0; + + int result = this->next (retv); + + ACE_UNUSED_ARG (result); + ACE_ASSERT (result != 0); + + return retv; +} + +// Returns the reference to the Hash_Multi_Map_manager_ex that is being +// iterated over. +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +const ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>& +ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map"); + return *this->map_man_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE bool +ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator== (const ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator=="); + return this->map_man_ == rhs.map_man_ + && this->index_ == rhs.index_ + && this->next_ == rhs.next_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE bool +ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!= (const ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!="); + return this->next_ != rhs.next_ + || this->index_ != rhs.index_ + || this->map_man_ != rhs.map_man_; +} + +ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Multi_Map_Iterator) + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE void +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump (void) const +{ +#if defined (ACE_HAS_DUMP) + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump"); + + this->dump_i (); +#endif /* ACE_HAS_DUMP */ +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Iterator (ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, + int tail) + : ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (mm, + tail == 0 ? 1 : 0) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Iterator"); + if (tail == 0) + this->forward_i (); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance"); + return this->forward_i (); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)"); + + this->forward_i (); + return *this; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)"); + + ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); + ++*this; + return retv; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)"); + + this->reverse_i (); + return *this; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)"); + + ACE_Hash_Multi_Map_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); + --*this; + return retv; +} + +ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Multi_Map_Const_Iterator) + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE void +ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump (void) const +{ +#if defined (ACE_HAS_DUMP) + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump"); + + this->dump_i (); +#endif /* ACE_HAS_DUMP */ +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Const_Iterator (const ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, + int tail) + : ACE_Hash_Multi_Map_Const_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (mm, + tail == 0 ? 1 : 0) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Const_Iterator"); + if (tail == 0) + this->forward_i (); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance"); + return this->forward_i (); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & +ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)"); + + this->forward_i (); + return *this; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)"); + + ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); + ++*this; + return retv; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & +ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)"); + + this->reverse_i (); + return *this; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)"); + + ACE_Hash_Multi_Map_Const_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); + --*this; + return retv; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Bucket_Iterator (ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, + const EXT_ID &ext_id, + int tail) + : map_man_ (&mm) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Bucket_Iterator"); + + this->index_ = this->map_man_->hash (ext_id) % this->map_man_->total_size_; + this->next_ = &this->map_man_->table_[this->index_]; + + if (tail == 0) + this->forward_i (); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)"); + + this->forward_i (); + return *this; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)"); + + ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); + ++*this; + return retv; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)"); + + this->reverse_i (); + return *this; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)"); + + ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); + --*this; + return retv; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::forward_i"); + + this->next_ = this->next_->next_; + return this->next_ != &this->map_man_->table_[this->index_]; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> int +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::reverse_i"); + + this->next_ = this->next_->prev_; + return this->next_ != &this->map_man_->table_[this->index_]; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> & +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator* (void) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator*"); + + return *this->next_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> * +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-> (void) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator->"); + + return this->next_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::map"); + return *this->map_man_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE bool +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator== (const ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator=="); + return this->map_man_ == rhs.map_man_ + && this->index_ == rhs.index_ + && this->next_ == rhs.next_; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE bool +ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!= (const ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &rhs) const +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator!="); + return this->next_ != rhs.next_ + || this->index_ != rhs.index_ + || this->map_man_ != rhs.map_man_; +} + +ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Multi_Map_Reverse_Iterator) + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE void +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump (void) const +{ +#if defined (ACE_HAS_DUMP) + ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::dump"); + + this->dump_i (); +#endif /* ACE_HAS_DUMP */ +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Reverse_Iterator (ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &mm, int head) + : ACE_Hash_Multi_Map_Iterator_Base<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> (mm, head) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Reverse_Iterator"); + if (head == 0) + this->reverse_i (); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE int +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::advance"); + return this->reverse_i (); +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (void)"); + + this->reverse_i (); + return *this; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)"); + + ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); + ++*this; + return retv; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> & +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (void)"); + + this->forward_i (); + return *this; +} + +template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> ACE_INLINE +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> +ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int) +{ + ACE_TRACE ("ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)"); + + ACE_Hash_Multi_Map_Reverse_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); + --*this; + return retv; +} + +ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/ace.mpc b/ACE/ace/ace.mpc index 5783f287e0e..c8c8bc9f597 100644 --- a/ACE/ace/ace.mpc +++ b/ACE/ace/ace.mpc @@ -307,7 +307,7 @@ project(ACE) : acedefaults, core, other, codecs, token, svcconf, uuid, filecache Guard_T.cpp Hash_Cache_Map_Manager_T.cpp Hash_Map_Manager_T.cpp - Hash_MultiMap_Manager_T.cpp + Hash_Multi_Map_Manager_T.cpp Hash_Map_With_Allocator_T.cpp IOStream_T.cpp Intrusive_List.cpp @@ -379,7 +379,6 @@ project(ACE) : acedefaults, core, other, codecs, token, svcconf, uuid, filecache Global_Macros.h Guard_T.h Hash_Map_Manager.h - Hash_MultiMap_Manager.h Handle_Gobbler.h If_Then_Else.h IO_Cntl_Msg.h |