Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ACE_Hash_Map_Bucket_Iterator Class Template Reference

Forward iterator for the 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>

Collaboration diagram for ACE_Hash_Map_Bucket_Iterator:

Collaboration graph
[legend]
List of all members.

Public Methods

 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_Manager_Ex<EXT_ID,
INT_ID, HASH_KEY, COMPARE_KEYS,
ACE_LOCK>& 
map (void)
 Returns reference the Hash_Map_Manager_Ex that is being iterated over.

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

int operator!= (const ACE_Hash_Map_Bucket_Iterator<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK> &) const

Protected Methods

int forward_i (void)
 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.

int reverse_i (void)
 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.


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_
 Keeps track of how far we've advanced in a linked list in each table slot.


Detailed Description

template<class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class ACE_LOCK> template class ACE_Hash_Map_Bucket_Iterator

Forward iterator for the 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 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 or on the 's internal lock, which is accessible via its <mutex> method. Note that this iterator cannot be created by calling a method on the map, since this would require


Constructor & Destructor Documentation

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
ACE_INLINE 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> ( ACE_Hash_Map_Manager_Ex< EXT_ID,INT_ID,HASH_KEY,COMPARE_KEYS,ACE_LOCK >& mm,
const EXT_ID & ext_id,
int tail = 0 )
 


Member Function Documentation

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
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.

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
ACE_INLINE 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 )
 

Returns reference the Hash_Map_Manager_Ex that is being iterated over.

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
ACE_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
 

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

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
ACE_INLINE int 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
 

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
ACE_INLINE 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 )
 

Postfix advance.

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
ACE_INLINE 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 )
 

Prefix advance.

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
ACE_INLINE 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 )
 

Postfix reverse.

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
ACE_INLINE 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 )
 

Prefix reverse.

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
ACE_INLINE int 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
 

Check if two iterators point to the same position.

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
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.


Member Data Documentation

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
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.

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
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.

template<classEXT_ID, classINT_ID, classHASH_KEY, classCOMPARE_KEYS, classACE_LOCK>
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.


The documentation for this class was generated from the following files:
Generated at Fri Oct 5 07:02:14 2001 for ACE by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000