Implements a common base class for iterators for a Red-Black Tree ADT. More...
#include <RB_Tree.h>
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. |
Implements a common base class for iterators for a Red-Black Tree ADT.
Definition at line 592 of file RB_Tree.h.
ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::ACE_RB_Tree_Iterator_Base | ( | const ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > & | iter | ) |
ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::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.
Definition at line 733 of file RB_Tree.inl.
ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::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).
Definition at line 1105 of file RB_Tree.cpp.
: tree_ (&tree), node_ (0) { ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree_Iterator_Base (ACE_RB_Tree, int)"); // Position the iterator at the first (or last) node in the tree. if (set_first) node_ = tree_->RB_tree_minimum (tree_->root_); else node_ = tree_->RB_tree_maximum (tree_->root_); }
ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::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.
Definition at line 1118 of file RB_Tree.cpp.
ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::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.
Definition at line 1126 of file RB_Tree.cpp.
ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::~ACE_RB_Tree_Iterator_Base | ( | void | ) | [protected] |
Destructor.
Definition at line 1161 of file RB_Tree.cpp.
{ ACE_TRACE ("ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::~ACE_RB_Tree_Iterator_Base"); }
int ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::done | ( | void | ) | const |
Returns 1 when the iteration has completed, otherwise 0.
Definition at line 743 of file RB_Tree.inl.
void ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::dump_i | ( | void | ) | const [protected] |
Dump the state of an object.
Definition at line 1170 of file RB_Tree.cpp.
int ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::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.
Definition at line 814 of file RB_Tree.inl.
bool ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::operator!= | ( | const ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > & | rbt | ) | const |
Comparison operator: returns 1 if the iterators point to different positions, otherwise 0.
Definition at line 802 of file RB_Tree.inl.
ACE_RB_Tree_Node< EXT_ID, INT_ID > & ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::operator* | ( | void | ) | const |
STL-like iterator dereference operator: returns a reference to the node underneath the iterator.
Definition at line 756 of file RB_Tree.inl.
ACE_RB_Tree_Node< EXT_ID, INT_ID > * ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::operator-> | ( | void | ) | const |
STL-like iterator dereference operator: returns a pointer to the node underneath the iterator.
Definition at line 768 of file RB_Tree.inl.
void ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::operator= | ( | const ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > & | iter | ) |
bool ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::operator== | ( | const ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > & | rbt | ) | const |
Comparison operator: returns 1 if both iterators point to the same position, otherwise 0.
Definition at line 790 of file RB_Tree.inl.
int ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::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.
Definition at line 832 of file RB_Tree.inl.
const ACE_RB_Tree< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK > & ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::tree | ( | void | ) |
Returns a const reference to the tree over which we're iterating.
Definition at line 778 of file RB_Tree.inl.
ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::ACE_ALLOC_HOOK_DECLARE |
Declare the dynamic allocation hooks.
Reimplemented in ACE_RB_Tree_Iterator< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >, and ACE_RB_Tree_Reverse_Iterator< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >.
ACE_RB_Tree_Node<EXT_ID, INT_ID>* ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::node_ [protected] |
const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>* ACE_RB_Tree_Iterator_Base< EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK >::tree_ [protected] |
Reference to the ACE_RB_Tree over which we're iterating.