ACE  6.5.11
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ACE_Hash_Map_Bucket_Iterator Class Reference

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. More...
 
ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > operator++ (int)
 Postfix advance. More...
 
ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & operator-- (void)
 Prefix reverse. More...
 
ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > operator-- (int)
 Postfix reverse. More...
 
ACE_Hash_Map_Entry< EXT_ID, INT_ID > & operator* (void) const
 Returns a reference to the interal element this is pointing to. More...
 
ACE_Hash_Map_Entry< EXT_ID, INT_ID > * operator-> (void) const
 Returns a pointer to the interal element this is pointing to. More...
 
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. More...
 
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. More...
 
ssize_t index_
 Keeps track of how far we've advanced in the table. More...
 
ACE_Hash_Map_Entry< EXT_ID, INT_ID > * next_
 

Detailed Description

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.

Member Typedef Documentation

◆ container_type

typedef ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> ACE_Hash_Map_Bucket_Iterator::container_type

◆ difference_type

◆ iterator_category

typedef std::bidirectional_iterator_tag ACE_Hash_Map_Bucket_Iterator::iterator_category

◆ pointer

◆ reference

◆ value_type

Constructor & Destructor Documentation

◆ ACE_Hash_Map_Bucket_Iterator()

ACE_Hash_Map_Bucket_Iterator::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

Member Function Documentation

◆ forward_i()

int ACE_Hash_Map_Bucket_Iterator::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.

◆ map()

ACE_Hash_Map_Manager_Ex< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & ACE_Hash_Map_Bucket_Iterator::map ( void  )
inline

Returns reference the Hash_Map_Manager_Ex that is being iterated over.

◆ operator!=()

bool ACE_Hash_Map_Bucket_Iterator::operator!= ( const ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > &  rhs) const
inline

◆ operator*()

ACE_Hash_Map_Entry< EXT_ID, INT_ID > & ACE_Hash_Map_Bucket_Iterator::operator* ( void  ) const
inline

Returns a reference to the interal element this is pointing to.

◆ operator++() [1/2]

ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > ACE_Hash_Map_Bucket_Iterator::operator++ ( int  )
inline

Postfix advance.

◆ operator++() [2/2]

ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & ACE_Hash_Map_Bucket_Iterator::operator++ ( void  )
inline

Prefix advance.

◆ operator--() [1/2]

ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > ACE_Hash_Map_Bucket_Iterator::operator-- ( int  )
inline

Postfix reverse.

◆ operator--() [2/2]

ACE_Hash_Map_Bucket_Iterator< EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK > & ACE_Hash_Map_Bucket_Iterator::operator-- ( void  )
inline

Prefix reverse.

◆ operator->()

ACE_Hash_Map_Entry< EXT_ID, INT_ID > * ACE_Hash_Map_Bucket_Iterator::operator-> ( void  ) const
inline

Returns a pointer to the interal element this is pointing to.

◆ operator==()

bool ACE_Hash_Map_Bucket_Iterator::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.

◆ reverse_i()

int ACE_Hash_Map_Bucket_Iterator::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.

Member Data Documentation

◆ index_

ssize_t ACE_Hash_Map_Bucket_Iterator::index_
protected

Keeps track of how far we've advanced in the table.

◆ map_man_

ACE_Hash_Map_Manager_Ex<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>* ACE_Hash_Map_Bucket_Iterator::map_man_
protected

Map we are iterating over.

◆ next_

ACE_Hash_Map_Entry<EXT_ID, INT_ID>* ACE_Hash_Map_Bucket_Iterator::next_
protected

Keeps track of how far we've advanced in a linked list in each table slot.


The documentation for this class was generated from the following files: