Iterates over an ACE_Timer_Hash_T. More...
#include <Timer_Hash_T.h>
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. |
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 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 > & | hash | ) |
Constructor.
Definition at line 179 of file Timer_Hash_T.cpp.
: timer_hash_ (hash) { this->first (); // Nothing }
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.
{ for (this->position_ = 0; this->position_ < this->timer_hash_.table_size_; ++this->position_) { // Check for an empty entry if (!this->timer_hash_.table_[this->position_]->is_empty ()) { this->iter_ = &this->timer_hash_.table_[this->position_]->iter (); this->iter_->first (); return; } } // Didn't find any this->iter_ = 0; }
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.
{ return this->iter_ == 0; }
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.
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.
{ if (this->isdone ()) return; // If there is no more in the current bucket, go to the next if (this->iter_->isdone ()) { for (++this->position_; this->position_ < this->timer_hash_.table_size_; ++this->position_) { // Check for an empty entry if (!this->timer_hash_.table_[this->position_]->is_empty ()) { this->iter_ = &this->timer_hash_.table_[this->position_]->iter (); this->iter_->first (); return; } } // Didn't find any. this->iter_ = 0; } else this->iter_->next (); }
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.
size_t ACE_Timer_Hash_Iterator_T< TYPE, FUNCTOR, ACE_LOCK, BUCKET >::position_ [protected] |
Current position in <timer_hash_>'s table.
Definition at line 145 of file Timer_Hash_T.h.
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.