ACE_Ordered_MultiSet_Iterator< T > 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>

List of all members.

Public Member Functions

 ACE_Ordered_MultiSet_Iterator (ACE_Ordered_MultiSet< T > &s)
int next (T *&next_item) const
int first (void)
int last (void)
int advance (void)
int retreat (void)
int done (void) const
 Returns 1 when all items have been seen, else 0.

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

T & operator * (void)
 Returns a reference to the internal element {this} is pointing to.


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.


Private Attributes

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

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


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 1681 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 1831 of file Containers_T.cpp.

01832   : current_ (s.head_),
01833     set_ (s)
01834 {
01835   // ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::ACE_Ordered_MultiSet_Iterator");
01836 }


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 216 of file Containers_T.inl.

References ACE_TRACE.

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

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 236 of file Containers_T.inl.

References ACE_TRACE.

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

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

Dump the state of an object.

Definition at line 244 of file Containers_T.inl.

00245 {
00246 #if defined (ACE_HAS_DUMP)
00247 // ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::dump");
00248 #endif /* ACE_HAS_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 198 of file Containers_T.inl.

References ACE_TRACE, and ACE_Ordered_MultiSet_Iterator< T >::set_.

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

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 207 of file Containers_T.inl.

References ACE_TRACE, and ACE_Ordered_MultiSet_Iterator< T >::set_.

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

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 1839 of file Containers_T.cpp.

Referenced by ACE_Ordered_MultiSet_Iterator< T >::operator *().

01840 {
01841   // ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::next");
01842   if (this->current_)
01843     {
01844       item = &this->current_->item_;
01845       return 1;
01846     }
01847 
01848   return 0;
01849 }

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 1852 of file Containers_T.cpp.

References ACE_ASSERT, and ACE_Ordered_MultiSet_Iterator< T >::next().

01853 {
01854   //ACE_TRACE ("ACE_Ordered_MultiSet_Iterator<T>::operator*");
01855   T *retv = 0;
01856 
01857   int result = this->next (retv);
01858   ACE_ASSERT (result != 0);
01859   ACE_UNUSED_ARG (result);
01860 
01861   return *retv;
01862 }

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 226 of file Containers_T.inl.

References ACE_TRACE.

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


Friends And Related Function Documentation

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

Definition at line 1684 of file Containers_T.h.


Member Data Documentation

template<class T>
ACE_Ordered_MultiSet_Iterator< T >::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

Definition at line 1721 of file Containers_T.h.

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

Pointer to the current node in the iteration.

Definition at line 1726 of file Containers_T.h.

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

Pointer to the set we're iterating over.

Definition at line 1729 of file Containers_T.h.

Referenced by ACE_Ordered_MultiSet_Iterator< T >::first(), and ACE_Ordered_MultiSet_Iterator< T >::last().


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 11:26:09 2006 for ACE by doxygen 1.3.6