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

ACE_Timer_Hash_Iterator_T Class Template Reference

Iterates over an <ACE_Timer_Hash_T>. More...

#include <Timer_Hash_T.h>

Inheritance diagram for ACE_Timer_Hash_Iterator_T:

Inheritance graph
[legend]
Collaboration diagram for ACE_Timer_Hash_Iterator_T:

Collaboration graph
[legend]
List of all members.

Public Methods

 ACE_Timer_Hash_Iterator_T (ACE_Timer_Hash_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET > &)
 Constructor. More...

virtual void first (void)
 Positions the iterator at the earliest node in the Timer Queue. More...

virtual void next (void)
 Positions the iterator at the next node in the Timer Queue. More...

virtual int isdone (void) const
 Returns true when there are no more nodes in the sequence. More...

virtual ACE_Timer_Node_T<
TYPE > * 
item (void)
 Returns the node at the current position in the sequence. More...


Protected Attributes

ACE_Timer_Hash_T< TYPE, FUNCTOR,
ACE_LOCK, BUCKET > & 
timer_hash_
 Pointer to the <ACE_Timer_Hash> that we are iterating over. More...

size_t position_
 Current position in <timer_hash_>'s table. More...

ACE_Timer_Queue_Iterator_T<
TYPE, ACE_Timer_Hash_Upcall<
TYPE, FUNCTOR, ACE_LOCK >,
ACE_Null_Mutex > * 
iter_
 Current iterator used on <position>'s bucket. More...


Detailed Description

template<class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
class ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >

Iterates over an <ACE_Timer_Hash_T>.

This is a generic iterator that can be used to visit every node of a timer queue. Be aware that it doesn't transverse in the order of timeout values.

Definition at line 88 of file Timer_Hash_T.h.


Constructor & Destructor Documentation

template<class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::ACE_Timer_Hash_Iterator_T ACE_Timer_Hash_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET > &   
 

Constructor.

Definition at line 110 of file Timer_Hash_T.cpp.

References first.

00111   : timer_hash_ (hash)
00112 {
00113   this->first ();
00114   // Nothing
00115 }


Member Function Documentation

template<class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
void ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::first void    [virtual]
 

Positions the iterator at the earliest node in the Timer Queue.

Implements ACE_Timer_Queue_Iterator_T.

Definition at line 120 of file Timer_Hash_T.cpp.

References ACE_Timer_Queue_Iterator_T< TYPE, ACE_Timer_Hash_Upcall< TYPE, FUNCTOR, ACE_LOCK >, ACE_Null_Mutex >::first, iter_, position_, and timer_hash_.

Referenced by ACE_Timer_Hash_Iterator_T, and ACE_Timer_Hash_T::iter.

00121 {
00122   for (this->position_ = 0;
00123        this->position_ < this->timer_hash_.table_size_;
00124        this->position_++)
00125     {
00126       // Check for an empty entry
00127       if (!this->timer_hash_.table_[this->position_]->is_empty ())
00128         {
00129           this->iter_ = &this->timer_hash_.table_[this->position_]->iter ();
00130           this->iter_->first ();
00131           return;
00132         }
00133     }
00134 
00135   // Didn't find any
00136   this->iter_ = 0;
00137 }

template<class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
int ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::isdone void    const [virtual]
 

Returns true when there are no more nodes in the sequence.

Implements ACE_Timer_Queue_Iterator_T.

Definition at line 174 of file Timer_Hash_T.cpp.

References iter_.

Referenced by item, and next.

00175 {
00176   return this->iter_ == 0;
00177 }

template<class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
ACE_Timer_Node_T< TYPE > * ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::item void    [virtual]
 

Returns the node at the current position in the sequence.

Implements ACE_Timer_Queue_Iterator_T.

Definition at line 182 of file Timer_Hash_T.cpp.

References isdone, ACE_Timer_Queue_Iterator_T< TYPE, ACE_Timer_Hash_Upcall< TYPE, FUNCTOR, ACE_LOCK >, ACE_Null_Mutex >::item, and iter_.

00183 {
00184   if (this->isdone ())
00185     return 0;
00186 
00187   return this->iter_->item ();
00188 }

template<class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
void ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::next void    [virtual]
 

Positions the iterator at the next node in the Timer Queue.

Implements ACE_Timer_Queue_Iterator_T.

Definition at line 143 of file Timer_Hash_T.cpp.

References ACE_Timer_Queue_Iterator_T< TYPE, ACE_Timer_Hash_Upcall< TYPE, FUNCTOR, ACE_LOCK >, ACE_Null_Mutex >::first, ACE_Timer_Queue_Iterator_T< TYPE, ACE_Timer_Hash_Upcall< TYPE, FUNCTOR, ACE_LOCK >, ACE_Null_Mutex >::isdone, isdone, iter_, ACE_Timer_Queue_Iterator_T< TYPE, ACE_Timer_Hash_Upcall< TYPE, FUNCTOR, ACE_LOCK >, ACE_Null_Mutex >::next, position_, and timer_hash_.

00144 {
00145   if (this->isdone ())
00146     return;
00147 
00148   // If there is no more in the current bucket, go to the next
00149   if (this->iter_->isdone ())
00150     {
00151       for (this->position_++;
00152            this->position_ < this->timer_hash_.table_size_;
00153            this->position_++)
00154         {
00155           // Check for an empty entry
00156           if (!this->timer_hash_.table_[this->position_]->is_empty ())
00157             {
00158               this->iter_ = &this->timer_hash_.table_[this->position_]->iter ();
00159               this->iter_->first ();
00160               return;
00161             }
00162         }
00163 
00164       // Didn't find any.
00165       this->iter_ = 0;
00166     }
00167   else
00168     this->iter_->next ();
00169 }


Member Data Documentation

template<class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
ACE_Timer_Queue_Iterator_T<TYPE, ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>, ACE_Null_Mutex>* ACE_Timer_Hash_Iterator_T::iter_ [protected]
 

Current iterator used on <position>'s bucket.

Definition at line 114 of file Timer_Hash_T.h.

Referenced by first, isdone, item, and next.

template<class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
size_t ACE_Timer_Hash_Iterator_T::position_ [protected]
 

Current position in <timer_hash_>'s table.

Definition at line 111 of file Timer_Hash_T.h.

Referenced by first, and next.

template<class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>& ACE_Timer_Hash_Iterator_T::timer_hash_ [protected]
 

Pointer to the <ACE_Timer_Hash> that we are iterating over.

Definition at line 108 of file Timer_Hash_T.h.

Referenced by first, and next.


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