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

ACE_Unbounded_Queue_Iterator Class Template Reference

Implement an iterator over an unbounded queue. More...

#include <Unbounded_Queue.h>

Collaboration diagram for ACE_Unbounded_Queue_Iterator:

Collaboration graph
[legend]
List of all members.

Public Methods

 ACE_Unbounded_Queue_Iterator (ACE_Unbounded_Queue< T > &q, int end=0)
int next (T *&next_item)
 Pass back the next_item that hasn't been seen in the queue. Returns 0 when all items have been seen, else 1. More...

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

int first (void)
 Move to the first element in the queue. Returns 0 if the queue is empty, 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...


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...


Private Attributes

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

ACE_Unbounded_Queue< T > & queue_
 Pointer to the queue we're iterating over. More...


Detailed Description

template<class T>
class ACE_Unbounded_Queue_Iterator< T >

Implement an iterator over an unbounded queue.

Definition at line 37 of file Unbounded_Queue.h.


Constructor & Destructor Documentation

template<class T>
ACE_Unbounded_Queue_Iterator< T >::ACE_Unbounded_Queue_Iterator ACE_Unbounded_Queue< T > &    q,
int    end = 0
 

Definition at line 382 of file Unbounded_Queue.cpp.

00383   : current_ (end == 0 ? q.head_->next_ : q.head_ ),
00384     queue_ (q)
00385 {
00386   // ACE_TRACE ("ACE_Unbounded_Queue_Iterator<T>::ACE_Unbounded_Queue_Iterator");
00387 }


Member Function Documentation

template<class T>
int ACE_Unbounded_Queue_Iterator< T >::advance void   
 

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

Definition at line 390 of file Unbounded_Queue.cpp.

References current_, and queue_.

Referenced by ACE_Select_Reactor_Notify::close, ACE_Dev_Poll_Reactor_Notify::close, ACE_ARGV::create_buf_from_queue, ACE_Unbounded_Queue::dump, ACE_Stats::mean, ACE_Service_Config::process_commandline_directives, ACE_Service_Config::process_directives, and ACE_Stats::std_dev.

00391 {
00392   // ACE_TRACE ("ACE_Unbounded_Queue_Iterator<T>::advance");
00393   this->current_ = this->current_->next_;
00394   return this->current_ != this->queue_.head_;
00395 }

template<class T>
int ACE_Unbounded_Queue_Iterator< T >::done void    const
 

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

Definition at line 406 of file Unbounded_Queue.cpp.

References ACE_TRACE, current_, and queue_.

Referenced by ACE_ARGV::create_buf_from_queue, ACE_Stats::mean, and ACE_Stats::std_dev.

00407 {
00408   ACE_TRACE ("ACE_Unbounded_Queue_Iterator<T>::done");
00409 
00410   return this->current_ == this->queue_.head_;
00411 }

template<class T>
void ACE_Unbounded_Queue_Iterator< T >::dump void    const
 

Dump the state of an object.

Definition at line 376 of file Unbounded_Queue.cpp.

00377 {
00378   // ACE_TRACE ("ACE_Unbounded_Queue_Iterator<T>::dump");
00379 }

template<class T>
int ACE_Unbounded_Queue_Iterator< T >::first void   
 

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

Definition at line 398 of file Unbounded_Queue.cpp.

References current_, and queue_.

00399 {
00400   // ACE_TRACE ("ACE_Unbounded_Queue_Iterator<T>::first");
00401   this->current_ = this->queue_.head_->next_;
00402   return this->current_ != this->queue_.head_;
00403 }

template<class T>
int ACE_Unbounded_Queue_Iterator< T >::next T *&    next_item
 

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

Definition at line 414 of file Unbounded_Queue.cpp.

References current_, and queue_.

Referenced by ACE_Select_Reactor_Notify::close, ACE_Dev_Poll_Reactor_Notify::close, ACE_ARGV::create_buf_from_queue, ACE_Unbounded_Queue::dump, ACE_Stats::mean, ACE_Service_Config::process_commandline_directives, ACE_Service_Config::process_directives, and ACE_Stats::std_dev.

00415 {
00416   // ACE_TRACE ("ACE_Unbounded_Queue_Iterator<T>::next");
00417   if (this->current_ == this->queue_.head_)
00418     return 0;
00419   else
00420     {
00421       item = &this->current_->item_;
00422       return 1;
00423     }
00424 }


Member Data Documentation

template<class T>
ACE_Unbounded_Queue_Iterator::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

Definition at line 64 of file Unbounded_Queue.h.

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

Pointer to the current node in the iteration.

Definition at line 68 of file Unbounded_Queue.h.

Referenced by advance, done, first, and next.

template<class T>
ACE_Unbounded_Queue<T>& ACE_Unbounded_Queue_Iterator::queue_ [private]
 

Pointer to the queue we're iterating over.

Definition at line 71 of file Unbounded_Queue.h.

Referenced by advance, done, first, and next.


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