/* -*- C++ -*- */ // $Id$ ///////////////////////////////////////// // template class RB_Tree_Node // ///////////////////////////////////////// template ACE_INLINE KEY & RB_Tree_Node::key () { return k_; } // key accessor template ACE_INLINE T & RB_Tree_Node::item () { return t_; } // item accessor template ACE_INLINE void RB_Tree_Node::color (RB_Tree_Node_Base::RB_Tree_Node_Color c) { color_ = c; } // set color of the node template ACE_INLINE RB_Tree_Node_Base::RB_Tree_Node_Color RB_Tree_Node::color () { return color_; } // get color of the node template ACE_INLINE RB_Tree_Node * RB_Tree_Node::parent () { return parent_; } // accessor for node's parent pointer template ACE_INLINE void RB_Tree_Node::parent (RB_Tree_Node * p) { parent_ = p; } // mutator for node's parent pointer template ACE_INLINE RB_Tree_Node * RB_Tree_Node::left () { return left_; } // accessor for node's left child pointer template ACE_INLINE void RB_Tree_Node::left (RB_Tree_Node * l) { left_ = l; } // mutator for node's left child pointer template ACE_INLINE RB_Tree_Node * RB_Tree_Node::right () { return right_; } // accessor for node's right child pointer template ACE_INLINE void RB_Tree_Node::right (RB_Tree_Node * r) { right_ = r; } // mutator for node's right child pointer //////////////////////////////////// // template class RB_Tree // //////////////////////////////////// template ACE_INLINE void RB_Tree::clear () { delete root_; root_ = 0; } // destroys all nodes and sets the root pointer null. ///////////////////////////////////////////// // template class RB_Tree_Iterator // ///////////////////////////////////////////// template ACE_INLINE KEY * RB_Tree_Iterator::key () { return node_ ? (&(node_->key ())) : 0; } // accessor for key of node under iterator (if any) template ACE_INLINE T * RB_Tree_Iterator::item () { return node_ ? (&(node_->item ())) : 0; } // accessor for item of node under iterator (if any) template ACE_INLINE int RB_Tree_Iterator::first () { node_ = tree_.RB_tree_minimum (tree_.root_); return node_ ? 1 : 0; } // move to the first item in the tree template ACE_INLINE int RB_Tree_Iterator::last () { node_ = tree_.RB_tree_maximum (tree_.root_); return node_ ? 1 : 0; } // move to the last item in the tree template ACE_INLINE int RB_Tree_Iterator::next () { node_ = tree_.RB_tree_successor (node_); return node_ ? 1 : 0; } // move to the next item in the tree // returns 1 if there is a next item, 0 otherwise template ACE_INLINE int RB_Tree_Iterator::previous () { node_ = tree_.RB_tree_predecessor (node_); return node_ ? 1 : 0; } // move to the previous item in the tree // returns 1 if there is a previous item, 0 otherwise template ACE_INLINE int RB_Tree_Iterator::is_done () { return node_ ? 0 : 1; }