Forward iterator for the ACE_Hash_Map_Manager_Ex which only traverses a particular bucket. The particular bucket is specified by the <EXT_ID> parameter specified in the constructor. More...
#include <Hash_Map_Manager_T.h>
Public Types | |
typedef ACE_Hash_Map_Manager_Ex < EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > | container_type |
typedef std::bidirectional_iterator_tag | iterator_category |
typedef container_type::value_type | value_type |
typedef container_type::reference | reference |
typedef container_type::pointer | pointer |
typedef container_type::difference_type | difference_type |
Public Member Functions | |
ACE_Hash_Map_Bucket_Iterator (ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > &mm, const EXT_ID &ext_id, int tail=0) | |
ACE_Hash_Map_Bucket_Iterator < EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & | operator++ (void) |
Prefix advance. | |
ACE_Hash_Map_Bucket_Iterator < EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > | operator++ (int) |
Postfix advance. | |
ACE_Hash_Map_Bucket_Iterator < EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & | operator-- (void) |
Prefix reverse. | |
ACE_Hash_Map_Bucket_Iterator < EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > | operator-- (int) |
Postfix reverse. | |
ACE_Hash_Map_Entry< EXT_ID, INT_ID > & | operator* (void) const |
Returns a reference to the interal element this is pointing to. | |
ACE_Hash_Map_Entry< EXT_ID, INT_ID > * | operator-> (void) const |
Returns a pointer to the interal element this is pointing to. | |
ACE_Hash_Map_Manager_Ex < EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & | map (void) |
bool | operator== (const ACE_Hash_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_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_Map_Manager_Ex < 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_Map_Entry< EXT_ID, INT_ID > * | next_ |
Forward iterator for the ACE_Hash_Map_Manager_Ex 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_Map_Manager_Ex 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_Map_Manager_Ex'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 906 of file Hash_Map_Manager_T.h.
typedef ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::container_type |
Definition at line 911 of file Hash_Map_Manager_T.h.
typedef container_type::difference_type ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::difference_type |
Definition at line 918 of file Hash_Map_Manager_T.h.
typedef std::bidirectional_iterator_tag ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::iterator_category |
Definition at line 914 of file Hash_Map_Manager_T.h.
typedef container_type::pointer ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::pointer |
Definition at line 917 of file Hash_Map_Manager_T.h.
typedef container_type::reference ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::reference |
Definition at line 916 of file Hash_Map_Manager_T.h.
typedef container_type::value_type ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::value_type |
Definition at line 915 of file Hash_Map_Manager_T.h.
ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::ACE_Hash_Map_Bucket_Iterator | ( | ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & | mm, | |
const EXT_ID & | ext_id, | |||
int | tail = 0 | |||
) | [inline] |
Definition at line 880 of file Hash_Map_Manager_T.inl.
: map_man_ (&mm) { ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::ACE_Hash_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 (); }
int ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::forward_i | ( | void | ) | [protected] |
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 937 of file Hash_Map_Manager_T.inl.
ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::map | ( | void | ) | [inline] |
Returns reference the Hash_Map_Manager_Ex that is being iterated over.
Definition at line 974 of file Hash_Map_Manager_T.inl.
bool ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator!= | ( | const ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & | rhs | ) | const [inline] |
ACE_Hash_Map_Entry< EXT_ID, INT_ID > & ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator* | ( | void | ) | const [inline] |
Returns a reference to the interal element this
is pointing to.
Definition at line 956 of file Hash_Map_Manager_T.inl.
ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator++ | ( | void | ) | [inline] |
Prefix advance.
Definition at line 896 of file Hash_Map_Manager_T.inl.
ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator++ | ( | int | ) | [inline] |
Postfix advance.
Definition at line 906 of file Hash_Map_Manager_T.inl.
{ ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator++ (int)"); ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); ++*this; return retv; }
ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator-- | ( | int | ) | [inline] |
Postfix reverse.
Definition at line 927 of file Hash_Map_Manager_T.inl.
{ ACE_TRACE ("ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::operator-- (int)"); ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> retv (*this); --*this; return retv; }
ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator-- | ( | void | ) | [inline] |
Prefix reverse.
Definition at line 917 of file Hash_Map_Manager_T.inl.
ACE_Hash_Map_Entry< EXT_ID, INT_ID > * ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator-> | ( | void | ) | const [inline] |
Returns a pointer to the interal element this
is pointing to.
Definition at line 965 of file Hash_Map_Manager_T.inl.
bool ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::operator== | ( | const ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & | rhs | ) | const [inline] |
Check if two iterators point to the same position.
Definition at line 981 of file Hash_Map_Manager_T.inl.
int ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::reverse_i | ( | void | ) | [protected] |
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 946 of file Hash_Map_Manager_T.inl.
ssize_t ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::index_ [protected] |
Keeps track of how far we've advanced in the table.
Definition at line 966 of file Hash_Map_Manager_T.h.
ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>* ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::map_man_ [protected] |
Map we are iterating over.
Definition at line 963 of file Hash_Map_Manager_T.h.
ACE_Hash_Map_Entry<EXT_ID, INT_ID>* ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::next_ [protected] |
Keeps track of how far we've advanced in a linked list in each table slot.
Definition at line 970 of file Hash_Map_Manager_T.h.