ACE  6.0.6
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
ACE_RB_Tree_Iterator_Base Class Reference

Implements a common base class for iterators for a Red-Black Tree ADT. More...

#include <RB_Tree.h>

Collaboration diagram for ACE_RB_Tree_Iterator_Base:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ACE_RB_Tree_Iterator_Base (const ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &iter)
 Copy constructor.
void operator= (const ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &iter)
 Assignment operator: copies both the tree reference and the position in the tree.
int done (void) const
 Returns 1 when the iteration has completed, otherwise 0.
ACE_RB_Tree_Node< EXT_ID,
INT_ID > & 
operator* (void) const
ACE_RB_Tree_Node< EXT_ID,
INT_ID > * 
operator-> (void) const
const ACE_RB_Tree< EXT_ID,
INT_ID, COMPARE_KEYS, ACE_LOCK > & 
tree (void)
 Returns a const reference to the tree over which we're iterating.
bool operator== (const ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &) const
 Comparison operator: returns 1 if both iterators point to the same position, otherwise 0.
bool operator!= (const ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &) const
 Comparison operator: returns 1 if the iterators point to different positions, otherwise 0.

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.

Protected Member Functions

 ACE_RB_Tree_Iterator_Base (void)
 ACE_RB_Tree_Iterator_Base (const ACE_RB_Tree< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &tree, int set_first)
 ACE_RB_Tree_Iterator_Base (const ACE_RB_Tree< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &tree, ACE_RB_Tree_Node< EXT_ID, INT_ID > *entry)
 ACE_RB_Tree_Iterator_Base (const EXT_ID &key, ACE_RB_Tree< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &tree)
 ~ACE_RB_Tree_Iterator_Base (void)
 Destructor.
int forward_i (void)
int reverse_i (void)
void dump_i (void) const
 Dump the state of an object.

Protected Attributes

const ACE_RB_Tree< EXT_ID,
INT_ID, COMPARE_KEYS, ACE_LOCK > * 
tree_
 Reference to the ACE_RB_Tree over which we're iterating.
ACE_RB_Tree_Node< EXT_ID,
INT_ID > * 
node_
 Pointer to the node currently under the iterator.

Detailed Description

Implements a common base class for iterators for a Red-Black Tree ADT.


Constructor & Destructor Documentation

ACE_RB_Tree_Iterator_Base::ACE_RB_Tree_Iterator_Base ( const ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &  iter)

Copy constructor.

ACE_RB_Tree_Iterator_Base::ACE_RB_Tree_Iterator_Base ( void  ) [protected]

Create the singular iterator. No valid iterator can be equal to it, it is illegal to dereference a singular iterator, etc. etc.

ACE_RB_Tree_Iterator_Base::ACE_RB_Tree_Iterator_Base ( const ACE_RB_Tree< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &  tree,
int  set_first 
) [protected]

Constructor. Takes an ACE_RB_Tree over which to iterate, and an integer indicating (if non-zero) to position the iterator at the first element in the tree (if this integer is 0, the iterator is positioned at the last element in the tree).

ACE_RB_Tree_Iterator_Base::ACE_RB_Tree_Iterator_Base ( const ACE_RB_Tree< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &  tree,
ACE_RB_Tree_Node< EXT_ID, INT_ID > *  entry 
) [protected]

Constructor. Takes an ACE_RB_Tree over which to iterate, and a pointer to a node in the tree.

ACE_RB_Tree_Iterator_Base::ACE_RB_Tree_Iterator_Base ( const EXT_ID &  key,
ACE_RB_Tree< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &  tree 
) [protected]

Constructor. Takes an ACE_RB_Tree over which to iterate, and a key. The key must come first to distinguish the case of EXT_ID == int.

ACE_RB_Tree_Iterator_Base::~ACE_RB_Tree_Iterator_Base ( void  ) [protected]

Destructor.


Member Function Documentation

int ACE_RB_Tree_Iterator_Base::done ( void  ) const

Returns 1 when the iteration has completed, otherwise 0.

void ACE_RB_Tree_Iterator_Base::dump_i ( void  ) const [protected]

Dump the state of an object.

int ACE_RB_Tree_Iterator_Base::forward_i ( void  ) [protected]

Move forward by one element in the tree. Returns 0 when there are no more elements in the tree, otherwise 1.

bool ACE_RB_Tree_Iterator_Base::operator!= ( const ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &  ) const

Comparison operator: returns 1 if the iterators point to different positions, otherwise 0.

ACE_RB_Tree_Node<EXT_ID, INT_ID>& ACE_RB_Tree_Iterator_Base::operator* ( void  ) const

STL-like iterator dereference operator: returns a reference to the node underneath the iterator.

ACE_RB_Tree_Node<EXT_ID, INT_ID>* ACE_RB_Tree_Iterator_Base::operator-> ( void  ) const

STL-like iterator dereference operator: returns a pointer to the node underneath the iterator.

void ACE_RB_Tree_Iterator_Base::operator= ( const ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &  iter)

Assignment operator: copies both the tree reference and the position in the tree.

bool ACE_RB_Tree_Iterator_Base::operator== ( const ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > &  ) const

Comparison operator: returns 1 if both iterators point to the same position, otherwise 0.

int ACE_RB_Tree_Iterator_Base::reverse_i ( void  ) [protected]

Move back by one element in the tree. Returns 0 when there are no more elements in the tree, otherwise 1.

const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>& ACE_RB_Tree_Iterator_Base::tree ( void  )

Returns a const reference to the tree over which we're iterating.


Member Data Documentation

Declare the dynamic allocation hooks.

Reimplemented in ACE_RB_Tree_Reverse_Iterator, and ACE_RB_Tree_Iterator.

ACE_RB_Tree_Node<EXT_ID, INT_ID>* ACE_RB_Tree_Iterator_Base::node_ [protected]

Pointer to the node currently under the iterator.

const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>* ACE_RB_Tree_Iterator_Base::tree_ [protected]

Reference to the ACE_RB_Tree over which we're iterating.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines