NAME
ACE_RB_Tree_Iterator - Implements an iterator for a Red-Black Tree ADT.
SYNOPSIS
#include <ace/RB_Tree.h>
template<class EXT_ID, class INT_ID, class COMPARE_KEYS, class ACE_LOCK>
class ACE_RB_Tree_Iterator :
public ACE_RB_Tree_Iterator_Base<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>
{
public:
ACE_RB_Tree_Iterator (
const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree,
int set_first = 1
);
~ACE_RB_Tree_Iterator (void);
int advance (void);
void dump (void) const;
ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> & operator++ (
void
);
ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> operator++ (
int
);
ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> & operator-- (
void
);
ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> operator-- (
int
);
ACE_ALLOC_HOOK_DECLARE;
int next (ACE_RB_Tree_Node<EXT_ID, INT_ID> *&next_entry) const;
EXT_ID *key (void);
INT_ID *item (void);
int first (void);
int last (void);
int next (void);
int previous (void);
int is_done (void);
};
Initialization and termination methods.
ACE_RB_Tree_Iterator (
const ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> &tree,
int set_first = 1
);
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 (void);
Destructor.
ACE-style iteration methods.
int advance (void);
Move forward by one element in the tree. Returns 0 when all elements have been seen, else 1.
void dump (void) const;
Dump the state of an object.
STL-style iteration methods.
ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> & operator++ (
void
);
Prefix advance.
ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> operator++ (
int
);
Postfix advance.
ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> & operator-- (
void
);
Prefix reverse.
ACE_RB_Tree_Iterator<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK> operator-- (
int
);
Postfix reverse.
ACE_ALLOC_HOOK_DECLARE;
Declare the dynamic allocation hooks.
int next (ACE_RB_Tree_Node<EXT_ID, INT_ID> *&next_entry) const;
Passes back the entry under the iterator. Returns 0 if the iteration has completed, otherwise 1. This method must be declared and defined in both the derived forward and reverse iterator classes rather than in the base iterator class because of a method signature resolution problem caused by the existence of the deprecated next (void) method in the derived forward iterator class. When that deprecated method is removed, this method should be removed from the derived classes and placed in the base class.
DEPRECATED methods. Please migrate your code to use the new methods instead
EXT_ID *key (void);
Accessor for key of node under iterator (if any). DEPRECATED
INT_ID *item (void);
Accessor for item of node under iterator (if any). DEPRECATED
int first (void);
Move to the first item in the iteration (and in the tree). DEPRECATED
int last (void);
Move to the last item in the iteration (and in the tree). DEPRECATED
int next (void);
Move to the next item in the iteration (and in the tree). DEPRECATED
int previous (void);
Move to the previous item in the iteration (and in the tree). DEPRECATED
int is_done (void);
Returns 0 if the iterator is positioned over a valid ACE_RB_Tree node, returns 1 if not. DEPRECATED: use the base class done method instead.
AUTHOR
Chris Gill
LIBRARY
ace