ACE
6.1.0
|
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.
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 |
typedef container_type::difference_type ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::difference_type |
typedef std::bidirectional_iterator_tag ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::iterator_category |
typedef container_type::pointer ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::pointer |
typedef container_type::reference ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::reference |
typedef container_type::value_type ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK >::value_type |
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] |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.