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.
More...
#include <Hash_Multi_Map_Manager_T.h>
Public Member Functions | |
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) | |
ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & | operator++ (void) |
Prefix advance. | |
ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > | operator++ (int) |
Postfix advance. | |
ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & | operator-- (void) |
Prefix reverse. | |
ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > | operator-- (int) |
Postfix reverse. | |
ACE_Hash_Multi_Map_Entry< EXT_ID, INT_ID > & | operator * (void) const |
Returns a reference to the interal element this object is pointing to. | |
ACE_Hash_Multi_Map_Entry< EXT_ID, INT_ID > * | operator-> (void) const |
Returns a pointer to the interal element this object is pointing to. | |
ACE_Hash_Multi_Map_Manager< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & | map (void) |
bool | operator== (const ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > &) const |
Check if two iterators point to the same position. | |
bool | operator!= (const ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > &) const |
Protected Member Functions | |
int | forward_i (void) |
int | reverse_i (void) |
Protected Attributes | |
ACE_Hash_Multi_Map_Manager< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > * | map_man_ |
Map we are iterating over. | |
ssize_t | index_ |
Keeps track of how far we've advanced in the table. | |
ACE_Hash_Multi_Map_Entry< EXT_ID, INT_ID > * | next_ |
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_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_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 to the hash map, since this would require adding explicit template instantiations for bucket iterators on platforms with broken templates.
Definition at line 850 of file Hash_Multi_Map_Manager_T.h.
|
Definition at line 806 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE, and ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::forward_i().
00809 : map_man_ (&mm) 00810 { 00811 ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_Multi_Map_Bucket_Iterator"); 00812 00813 this->index_ = this->map_man_->hash (ext_id) % this->map_man_->total_size_; 00814 this->next_ = &this->map_man_->table_[this->index_]; 00815 00816 if (tail == 0) 00817 this->forward_i (); 00818 } |
|
Move forward by one element in the set. Returns 0 when there's no more item in the set after the current items, else 1. Definition at line 863 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE. Referenced by ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::ACE_Hash_Multi_Map_Bucket_Iterator(), and ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator++().
|
|
Returns reference the Hash_Multi_Map_Manager that is being iterated over. Definition at line 900 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE.
|
|
Returns a reference to the interal element this object is pointing to.
Definition at line 882 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE.
|
|
|
Postfix advance.
Definition at line 832 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE.
00833 { 00834 ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)"); 00835 00836 ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); 00837 ++*this; 00838 return retv; 00839 } |
|
Prefix advance.
Definition at line 822 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE, and ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::forward_i().
|
|
Postfix reverse.
Definition at line 853 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE.
00854 { 00855 ACE_TRACE ("ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)"); 00856 00857 ACE_Hash_Multi_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); 00858 --*this; 00859 return retv; 00860 } |
|
Prefix reverse.
Definition at line 843 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE, and ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::reverse_i().
|
|
Returns a pointer to the interal element this object is pointing to.
Definition at line 891 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE.
|
|
Check if two iterators point to the same position.
Definition at line 907 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE, ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::index_, ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::map_man_, and ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::next_.
|
|
Move backward by one element in the set. Returns 0 when there's no more item in the set before the current item, else 1. Definition at line 872 of file Hash_Multi_Map_Manager_T.inl. References ACE_TRACE. Referenced by ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator--().
|
|
Keeps track of how far we've advanced in the table.
Definition at line 899 of file Hash_Multi_Map_Manager_T.h. Referenced by ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator!=(), and ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator==(). |
|
Map we are iterating over.
Definition at line 896 of file Hash_Multi_Map_Manager_T.h. Referenced by ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator!=(), and ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator==(). |
|
Keeps track of how far we've advanced in a linked list in each table slot. Definition at line 903 of file Hash_Multi_Map_Manager_T.h. Referenced by ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator!=(), and ACE_Hash_Multi_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator==(). |