#include <Timer_Hash_T.h>
Inheritance diagram for ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >:
Public Member Functions | |
ACE_Timer_Hash_Iterator_T (ACE_Timer_Hash_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET > &) | |
Constructor. | |
virtual void | first (void) |
Positions the iterator at the earliest node in the Timer Queue. | |
virtual void | next (void) |
Positions the iterator at the next node in the Timer Queue. | |
virtual bool | isdone (void) const |
Returns true when there are no more nodes in the sequence. | |
virtual ACE_Timer_Node_T< TYPE > * | item (void) |
Returns the node at the current position in the sequence. | |
Protected Attributes | |
ACE_Timer_Hash_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET > & | timer_hash_ |
Pointer to the ACE_Timer_Hash that we are iterating over. | |
size_t | position_ |
Current position in <timer_hash_>'s table. | |
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. |
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 122 of file Timer_Hash_T.h.
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 179 of file Timer_Hash_T.cpp.
References ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::first().
00180 : timer_hash_ (hash) 00181 { 00182 this->first (); 00183 // Nothing 00184 }
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< TYPE, FUNCTOR, ACE_LOCK >.
Definition at line 189 of file Timer_Hash_T.cpp.
References ACE_Timer_Queue_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::first(), and ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::iter_.
Referenced by ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::ACE_Timer_Hash_Iterator_T(), and ACE_Timer_Hash_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::iter().
00190 { 00191 for (this->position_ = 0; 00192 this->position_ < this->timer_hash_.table_size_; 00193 ++this->position_) 00194 { 00195 // Check for an empty entry 00196 if (!this->timer_hash_.table_[this->position_]->is_empty ()) 00197 { 00198 this->iter_ = &this->timer_hash_.table_[this->position_]->iter (); 00199 this->iter_->first (); 00200 return; 00201 } 00202 } 00203 00204 // Didn't find any 00205 this->iter_ = 0; 00206 }
bool 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< TYPE, FUNCTOR, ACE_LOCK >.
Definition at line 243 of file Timer_Hash_T.cpp.
References ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::iter_.
00244 { 00245 return this->iter_ == 0; 00246 }
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< TYPE, FUNCTOR, ACE_LOCK >.
Definition at line 252 of file Timer_Hash_T.cpp.
References ACE_Timer_Queue_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::item(), and ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::iter_.
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< TYPE, FUNCTOR, ACE_LOCK >.
Definition at line 212 of file Timer_Hash_T.cpp.
References ACE_Timer_Queue_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::first(), ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::iter_, and ACE_Timer_Queue_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::next().
00213 { 00214 if (this->isdone ()) 00215 return; 00216 00217 // If there is no more in the current bucket, go to the next 00218 if (this->iter_->isdone ()) 00219 { 00220 for (++this->position_; 00221 this->position_ < this->timer_hash_.table_size_; 00222 ++this->position_) 00223 { 00224 // Check for an empty entry 00225 if (!this->timer_hash_.table_[this->position_]->is_empty ()) 00226 { 00227 this->iter_ = &this->timer_hash_.table_[this->position_]->iter (); 00228 this->iter_->first (); 00229 return; 00230 } 00231 } 00232 00233 // Didn't find any. 00234 this->iter_ = 0; 00235 } 00236 else 00237 this->iter_->next (); 00238 }
ACE_Timer_Queue_Iterator_T<TYPE, ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>, ACE_Null_Mutex>* ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::iter_ [protected] |
Current iterator used on <position>'s bucket.
Definition at line 148 of file Timer_Hash_T.h.
Referenced by ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::first(), ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::isdone(), ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::item(), and ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::next().
size_t ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::position_ [protected] |
ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>& ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::timer_hash_ [protected] |
Pointer to the ACE_Timer_Hash that we are iterating over.
Definition at line 142 of file Timer_Hash_T.h.