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

ACE_Ordered_MultiSet_Iterator Class Template Reference

Implement a bidirectional iterator over an ordered multiset. This class template requires that < operator semantics be defined for the parameterized type <T>, but does not impose any restriction on how that ordering operator is implemented. More...

#include <Containers_T.h>

Collaboration diagram for ACE_Ordered_MultiSet_Iterator:

Collaboration graph
[legend]
List of all members.

Public Methods

 ACE_Ordered_MultiSet_Iterator (ACE_Ordered_MultiSet< T > &s)
int next (T *&next_item) const
 Pass back the <next_item> that hasn't been seen in the ordered multiset. Returns 0 when all items have been seen, else 1. More...

int first (void)
 Repositions the iterator at the first item in the ordered multiset Returns 0 if the list is empty else 1. More...

int last (void)
 Repositions the iterator at the last item in the ordered multiset Returns 0 if the list is empty else 1. More...

int advance (void)
 Move forward by one element in the set. Returns 0 when all the items in the set have been seen, else 1. More...

int retreat (void)
 Move backward by one element in the set. Returns 0 when all the items in the set have been seen, else 1. More...

int done (void) const
 Returns 1 when all items have been seen, else 0. More...

void dump (void) const
 Dump the state of an object. More...

T & operator * (void)
 Returns a reference to the internal element <this> is pointing to. More...


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...


Private Attributes

ACE_DNode< T > * current_
 Pointer to the current node in the iteration. More...

ACE_Ordered_MultiSet< T > & set_
 Pointer to the set we're iterating over. More...


Friends

class ACE_Ordered_MultiSet< T >

Detailed Description

template<class T>
class ACE_Ordered_MultiSet_Iterator< T >

Implement a bidirectional iterator over an ordered multiset. This class template requires that < operator semantics be defined for the parameterized type <T>, but does not impose any restriction on how that ordering operator is implemented.

Definition at line 1652 of file Containers_T.h.


Constructor & Destructor Documentation

template<class T>
ACE_Ordered_MultiSet_Iterator< T >::ACE_Ordered_MultiSet_Iterator ACE_Ordered_MultiSet< T > &    s
 

Definition at line 1773 of file Containers_T.cpp.

01774   : current_ (s.head_),
01775     set_ (s)
01776 {
01777   // ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::ACE_Ordered_MultiSet_Iterator");
01778 }


Member Function Documentation

template<class T>
ACE_INLINE int ACE_Ordered_MultiSet_Iterator< T >::advance void   
 

Move forward by one element in the set. Returns 0 when all the items in the set have been seen, else 1.

Definition at line 218 of file Containers_T.i.

References ACE_TRACE, and current_.

00219 {
00220   ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::advance");
00221 
00222   current_ = current_ ? current_->next_ : 0;
00223 
00224   return (current_ ? 1 : 0);
00225 }

template<class T>
ACE_INLINE int ACE_Ordered_MultiSet_Iterator< T >::done void    const
 

Returns 1 when all items have been seen, else 0.

Definition at line 238 of file Containers_T.i.

References ACE_TRACE, and current_.

00239 {
00240   ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::done");
00241 
00242   return (current_ ? 0 : 1);
00243 }

template<class T>
ACE_INLINE void ACE_Ordered_MultiSet_Iterator< T >::dump void    const
 

Dump the state of an object.

Definition at line 246 of file Containers_T.i.

00247 {
00248 // ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::dump");
00249 }

template<class T>
ACE_INLINE int ACE_Ordered_MultiSet_Iterator< T >::first void   
 

Repositions the iterator at the first item in the ordered multiset Returns 0 if the list is empty else 1.

Definition at line 200 of file Containers_T.i.

References ACE_TRACE, current_, and set_.

00201 {
00202   ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::first");
00203   current_ = set_.head_;
00204 
00205   return (current_ ? 1 : 0);
00206 }

template<class T>
ACE_INLINE int ACE_Ordered_MultiSet_Iterator< T >::last void   
 

Repositions the iterator at the last item in the ordered multiset Returns 0 if the list is empty else 1.

Definition at line 209 of file Containers_T.i.

References ACE_TRACE, current_, and set_.

00210 {
00211   ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::last");
00212   current_ = set_.tail_;
00213 
00214   return (current_ ? 1 : 0);
00215 }

template<class T>
int ACE_Ordered_MultiSet_Iterator< T >::next T *&    next_item const
 

Pass back the <next_item> that hasn't been seen in the ordered multiset. Returns 0 when all items have been seen, else 1.

Definition at line 1781 of file Containers_T.cpp.

References current_.

Referenced by operator *.

01782 {
01783   // ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::next");
01784   if (this->current_)
01785     {
01786       item = &this->current_->item_;
01787       return 1;
01788     }
01789 
01790   return 0;
01791 }

template<class T>
T & ACE_Ordered_MultiSet_Iterator< T >::operator * void   
 

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

Definition at line 1794 of file Containers_T.cpp.

References ACE_ASSERT, and next.

01795 {
01796   //ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::operator*");
01797   T *retv = 0;
01798 
01799   int result = this->next (retv);
01800   ACE_ASSERT (result != 0);
01801   ACE_UNUSED_ARG (result);
01802 
01803   return *retv;
01804 }

template<class T>
ACE_INLINE int ACE_Ordered_MultiSet_Iterator< T >::retreat void   
 

Move backward by one element in the set. Returns 0 when all the items in the set have been seen, else 1.

Definition at line 228 of file Containers_T.i.

References ACE_TRACE, and current_.

00229 {
00230   ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::retreat");
00231 
00232   current_ = current_ ? current_->prev_ : 0;
00233 
00234   return (current_ ? 1 : 0);
00235 }


Friends And Related Function Documentation

template<class T>
friend class ACE_Ordered_MultiSet< T > [friend]
 

Definition at line 1655 of file Containers_T.h.


Member Data Documentation

template<class T>
ACE_Ordered_MultiSet_Iterator::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

Definition at line 1692 of file Containers_T.h.

template<class T>
ACE_DNode<T>* ACE_Ordered_MultiSet_Iterator::current_ [private]
 

Pointer to the current node in the iteration.

Definition at line 1697 of file Containers_T.h.

Referenced by advance, done, ACE_Ordered_MultiSet::find, first, ACE_Ordered_MultiSet::insert, last, next, and retreat.

template<class T>
ACE_Ordered_MultiSet<T>& ACE_Ordered_MultiSet_Iterator::set_ [private]
 

Pointer to the set we're iterating over.

Definition at line 1700 of file Containers_T.h.

Referenced by first, and last.


The documentation for this class was generated from the following files:
Generated on Mon Jun 16 12:51:25 2003 for ACE by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002