ACE_Unbounded_Set_Ex_Iterator< T, C > Class Template Reference

Implement an iterator over an unbounded set. More...

#include <Unbounded_Set_Ex.h>

List of all members.

Public Member Functions

 ACE_Unbounded_Set_Ex_Iterator (ACE_Unbounded_Set_Ex< T, C > &s, bool end=false)
int next (T *&next_item)
int advance (void)
int first (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.
ACE_Unbounded_Set_Ex_Iterator<
T, C > 
operator++ (int)
 Postfix advance.
ACE_Unbounded_Set_Ex_Iterator<
T, C > & 
operator++ (void)
 Prefix advance.
T & operator * (void)
 Returns a reference to the internal element this is pointing to.
bool operator== (const ACE_Unbounded_Set_Ex_Iterator< T, C > &) const
 Check if two iterators point to the same position.
bool operator!= (const ACE_Unbounded_Set_Ex_Iterator< T, C > &) const

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.

Private Attributes

ACE_Node< T, C > * current_
 Pointer to the current node in the iteration.
ACE_Unbounded_Set_Ex< T, C > * set_
 Pointer to the set we're iterating over.


Detailed Description

template<class T, class C>
class ACE_Unbounded_Set_Ex_Iterator< T, C >

Implement an iterator over an unbounded set.

Definition at line 43 of file Unbounded_Set_Ex.h.


Constructor & Destructor Documentation

template<class T, class C>
ACE_Unbounded_Set_Ex_Iterator< T, C >::ACE_Unbounded_Set_Ex_Iterator ( ACE_Unbounded_Set_Ex< T, C > &  s,
bool  end = false 
)

Definition at line 294 of file Unbounded_Set_Ex.cpp.

00297   : current_ (!end ? s.head_->next_ : s.head_ ),
00298     set_ (&s)
00299 {
00300   // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::ACE_Unbounded_Set_Ex_Iterator");
00301 }


Member Function Documentation

template<class T, class C>
int ACE_Unbounded_Set_Ex_Iterator< T, C >::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 304 of file Unbounded_Set_Ex.cpp.

References ACE_Unbounded_Set_Ex_Iterator< T, C >::current_, and ACE_Unbounded_Set_Ex_Iterator< T, C >::set_.

Referenced by ACE_Service_Gestalt::add_processed_static_svc(), ACE_Service_Gestalt::close(), ACE_Service_Gestalt::find_processed_static_svc(), ACE_Service_Gestalt::find_static_svc_descriptor(), ACE_Service_Gestalt::load_static_svcs(), ACE_Unbounded_Set_Ex_Iterator< T, C >::operator++(), and ACE_Service_Gestalt::~ACE_Service_Gestalt().

00305 {
00306   // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::advance");
00307   this->current_ = this->current_->next_;
00308   return this->current_ != this->set_->head_;
00309 }

template<class T, class C>
int ACE_Unbounded_Set_Ex_Iterator< T, C >::done ( void   )  const

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

Definition at line 320 of file Unbounded_Set_Ex.cpp.

References ACE_TRACE, ACE_Unbounded_Set_Ex_Iterator< T, C >::current_, and ACE_Unbounded_Set_Ex_Iterator< T, C >::set_.

00321 {
00322   ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::done");
00323 
00324   return this->current_ == this->set_->head_;
00325 }

template<class T, class C>
void ACE_Unbounded_Set_Ex_Iterator< T, C >::dump ( void   )  const

Dump the state of an object.

Definition at line 286 of file Unbounded_Set_Ex.cpp.

00287 {
00288 #if defined (ACE_HAS_DUMP)
00289   // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::dump");
00290 #endif /* ACE_HAS_DUMP */
00291 }

template<class T, class C>
int ACE_Unbounded_Set_Ex_Iterator< T, C >::first ( void   ) 

Move to the first element in the set. Returns 0 if the set is empty, else 1.

Definition at line 312 of file Unbounded_Set_Ex.cpp.

References ACE_Unbounded_Set_Ex_Iterator< T, C >::current_, and ACE_Unbounded_Set_Ex_Iterator< T, C >::set_.

00313 {
00314   // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::first");
00315   this->current_ = this->set_->head_->next_;
00316   return this->current_ != this->set_->head_;
00317 }

template<class T, class C>
int ACE_Unbounded_Set_Ex_Iterator< T, C >::next ( T *&  next_item  ) 

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

Definition at line 328 of file Unbounded_Set_Ex.cpp.

References ACE_Unbounded_Set_Ex_Iterator< T, C >::current_.

Referenced by ACE_Service_Gestalt::add_processed_static_svc(), ACE_Service_Gestalt::close(), ACE_Service_Gestalt::find_processed_static_svc(), ACE_Service_Gestalt::find_static_svc_descriptor(), ACE_Service_Gestalt::load_static_svcs(), ACE_Unbounded_Set_Ex_Iterator< T, C >::operator *(), and ACE_Service_Gestalt::~ACE_Service_Gestalt().

00329 {
00330   // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::next");
00331   if (this->current_ == this->set_->head_)
00332     return 0;
00333   else
00334     {
00335       item = &this->current_->item_;
00336       return 1;
00337     }
00338 }

template<class T, class C>
T & ACE_Unbounded_Set_Ex_Iterator< T, C >::operator * ( void   ) 

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

Definition at line 364 of file Unbounded_Set_Ex.cpp.

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

00365 {
00366   //ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::operator*");
00367   T *retv = 0;
00368 
00369   int result = this->next (retv);
00370   ACE_ASSERT (result != 0);
00371   ACE_UNUSED_ARG (result);
00372 
00373   return *retv;
00374 }

template<class T, class C>
bool ACE_Unbounded_Set_Ex_Iterator< T, C >::operator!= ( const ACE_Unbounded_Set_Ex_Iterator< T, C > &   )  const

Definition at line 384 of file Unbounded_Set_Ex.cpp.

References ACE_Unbounded_Set_Ex_Iterator< T, C >::current_, and ACE_Unbounded_Set_Ex_Iterator< T, C >::set_.

00385 {
00386   //ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::operator!=");
00387   return (this->set_ != rhs.set_ || this->current_ != rhs.current_);
00388 }

template<class T, class C>
ACE_Unbounded_Set_Ex_Iterator< T, C > & ACE_Unbounded_Set_Ex_Iterator< T, C >::operator++ ( void   ) 

Prefix advance.

Definition at line 353 of file Unbounded_Set_Ex.cpp.

References ACE_Unbounded_Set_Ex_Iterator< T, C >::advance().

00354 {
00355   // ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::operator++ (void)");
00356 
00357   // prefix operator
00358 
00359   this->advance ();
00360   return *this;
00361 }

template<class T, class C>
ACE_Unbounded_Set_Ex_Iterator< T, C > ACE_Unbounded_Set_Ex_Iterator< T, C >::operator++ ( int   ) 

Postfix advance.

Definition at line 341 of file Unbounded_Set_Ex.cpp.

References ACE_Unbounded_Set_Ex_Iterator< T, C >::advance().

00342 {
00343   //ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::operator++ (int)");
00344   ACE_Unbounded_Set_Ex_Iterator<T, C> retv (*this);
00345 
00346   // postfix operator
00347 
00348   this->advance ();
00349   return retv;
00350 }

template<class T, class C>
bool ACE_Unbounded_Set_Ex_Iterator< T, C >::operator== ( const ACE_Unbounded_Set_Ex_Iterator< T, C > &   )  const

Check if two iterators point to the same position.

Definition at line 377 of file Unbounded_Set_Ex.cpp.

References ACE_Unbounded_Set_Ex_Iterator< T, C >::current_, and ACE_Unbounded_Set_Ex_Iterator< T, C >::set_.

00378 {
00379   //ACE_TRACE ("ACE_Unbounded_Set_Ex_Iterator<T, C>::operator==");
00380   return (this->set_ == rhs.set_ && this->current_ == rhs.current_);
00381 }


Member Data Documentation

template<class T, class C>
ACE_Unbounded_Set_Ex_Iterator< T, C >::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

Definition at line 85 of file Unbounded_Set_Ex.h.

template<class T, class C>
ACE_Node<T, C>* ACE_Unbounded_Set_Ex_Iterator< T, C >::current_ [private]

Pointer to the current node in the iteration.

Definition at line 90 of file Unbounded_Set_Ex.h.

Referenced by ACE_Unbounded_Set_Ex_Iterator< T, C >::advance(), ACE_Unbounded_Set_Ex_Iterator< T, C >::done(), ACE_Unbounded_Set_Ex_Iterator< T, C >::first(), ACE_Unbounded_Set_Ex_Iterator< T, C >::next(), ACE_Unbounded_Set_Ex_Iterator< T, C >::operator!=(), and ACE_Unbounded_Set_Ex_Iterator< T, C >::operator==().

template<class T, class C>
ACE_Unbounded_Set_Ex<T, C>* ACE_Unbounded_Set_Ex_Iterator< T, C >::set_ [private]

Pointer to the set we're iterating over.

Definition at line 93 of file Unbounded_Set_Ex.h.

Referenced by ACE_Unbounded_Set_Ex_Iterator< T, C >::advance(), ACE_Unbounded_Set_Ex_Iterator< T, C >::done(), ACE_Unbounded_Set_Ex_Iterator< T, C >::first(), ACE_Unbounded_Set_Ex_Iterator< T, C >::operator!=(), and ACE_Unbounded_Set_Ex_Iterator< T, C >::operator==().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:35:51 2010 for ACE by  doxygen 1.4.7