ACE_Unbounded_Stack_Iterator< T > Class Template Reference

Implement an iterator over an unbounded Stack. More...

#include <Containers_T.h>

Collaboration diagram for ACE_Unbounded_Stack_Iterator< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_Unbounded_Stack_Iterator (ACE_Unbounded_Stack< T > &stack)
 Move to the first element in the {stack}.
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.

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.

Private Attributes

ACE_Node< T > * current_
 Pointer to the current node in the iteration.
ACE_Unbounded_Stack< T > & stack_
 Pointer to the Stack we're iterating over.

Detailed Description

template<class T>
class ACE_Unbounded_Stack_Iterator< T >

Implement an iterator over an unbounded Stack.

Definition at line 508 of file Containers_T.h.


Constructor & Destructor Documentation

template<class T>
ACE_Unbounded_Stack_Iterator< T >::ACE_Unbounded_Stack_Iterator ( ACE_Unbounded_Stack< T > &  stack  ) 

Move to the first element in the {stack}.

Definition at line 1469 of file Containers_T.cpp.

01470   : current_ (q.head_->next_),
01471     stack_ (q)
01472 {
01473   // ACE_TRACE ("ACE_Unbounded_Stack_Iterator<T>::ACE_Unbounded_Stack_Iterator");
01474 }


Member Function Documentation

template<class T>
int ACE_Unbounded_Stack_Iterator< T >::advance ( void   ) 

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

Definition at line 1477 of file Containers_T.cpp.

References ACE_Unbounded_Stack_Iterator< T >::current_, ACE_Node< T, C >::next_, and ACE_Unbounded_Stack_Iterator< T >::stack_.

01478 {
01479   // ACE_TRACE ("ACE_Unbounded_Stack_Iterator<T>::advance");
01480   this->current_ = this->current_->next_;
01481   return this->current_ != this->stack_.head_;
01482 }

template<class T>
int ACE_Unbounded_Stack_Iterator< T >::done ( void   )  const

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

Definition at line 1493 of file Containers_T.cpp.

References ACE_TRACE, ACE_Unbounded_Stack_Iterator< T >::current_, and ACE_Unbounded_Stack_Iterator< T >::stack_.

01494 {
01495   ACE_TRACE ("ACE_Unbounded_Stack_Iterator<T>::done");
01496 
01497   return this->current_ == this->stack_.head_;
01498 }

template<class T>
void ACE_Unbounded_Stack_Iterator< T >::dump ( void   )  const

Dump the state of an object.

Definition at line 1461 of file Containers_T.cpp.

01462 {
01463 #if defined (ACE_HAS_DUMP)
01464   // ACE_TRACE ("ACE_Unbounded_Stack_Iterator<T>::dump");
01465 #endif /* ACE_HAS_DUMP */
01466 }

template<class T>
int ACE_Unbounded_Stack_Iterator< T >::first ( void   ) 

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

Definition at line 1485 of file Containers_T.cpp.

References ACE_Unbounded_Stack_Iterator< T >::current_, and ACE_Unbounded_Stack_Iterator< T >::stack_.

01486 {
01487   // ACE_TRACE ("ACE_Unbounded_Stack_Iterator<T>::first");
01488   this->current_ = this->stack_.head_->next_;
01489   return this->current_ != this->stack_.head_;
01490 }

template<class T>
int ACE_Unbounded_Stack_Iterator< T >::next ( T *&  next_item  ) 

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

Definition at line 1501 of file Containers_T.cpp.

References ACE_Unbounded_Stack_Iterator< T >::current_, and ACE_Node< T, C >::item_.

Referenced by ACE_Notification_Queue::pop_next_notification(), and ACE_Notification_Queue::purge_pending_notifications().

01502 {
01503   // ACE_TRACE ("ACE_Unbounded_Stack_Iterator<T>::next");
01504   if (this->current_ == this->stack_.head_)
01505     return 0;
01506   else
01507     {
01508       item = &this->current_->item_;
01509       return 1;
01510     }
01511 }


Member Data Documentation

template<class T>
ACE_Unbounded_Stack_Iterator< T >::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

Definition at line 536 of file Containers_T.h.

template<class T>
ACE_Node<T>* ACE_Unbounded_Stack_Iterator< T >::current_ [private]

Pointer to the current node in the iteration.

Definition at line 540 of file Containers_T.h.

Referenced by ACE_Unbounded_Stack_Iterator< T >::advance(), ACE_Unbounded_Stack_Iterator< T >::done(), ACE_Unbounded_Stack_Iterator< T >::first(), and ACE_Unbounded_Stack_Iterator< T >::next().

template<class T>
ACE_Unbounded_Stack<T>& ACE_Unbounded_Stack_Iterator< T >::stack_ [private]

Pointer to the Stack we're iterating over.

Definition at line 543 of file Containers_T.h.

Referenced by ACE_Unbounded_Stack_Iterator< T >::advance(), ACE_Unbounded_Stack_Iterator< T >::done(), and ACE_Unbounded_Stack_Iterator< T >::first().


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