ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK > Class Template Reference

Iterates over an ACE_Timer_Heap_T. More...

#include <Timer_Heap_T.h>

Inheritance diagram for ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >:

Inheritance graph
[legend]
Collaboration diagram for ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_Timer_Heap_Iterator_T (ACE_Timer_Heap_T< TYPE, FUNCTOR, ACE_LOCK > &)
 Constructor.
 ~ACE_Timer_Heap_Iterator_T (void)
 Destructor.
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_Heap_T< TYPE, FUNCTOR,
ACE_LOCK > & 
timer_heap_
 Pointer to the ACE_Timer_Heap that we are iterating over.
size_t position_
 Position in the array where the iterator is at.

Detailed Description

template<class TYPE, class FUNCTOR, class ACE_LOCK>
class ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >

Iterates over an ACE_Timer_Heap_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 42 of file Timer_Heap_T.h.


Constructor & Destructor Documentation

template<class TYPE, class FUNCTOR, class ACE_LOCK>
class FUNCTOR class ACE_LOCK ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::ACE_Timer_Heap_Iterator_T ( ACE_Timer_Heap_T< TYPE, FUNCTOR, ACE_LOCK > &   )  [inline]

Constructor.

Definition at line 43 of file Timer_Heap_T.cpp.

References ACE_TRACE, and ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::first().

00045   : timer_heap_ (heap)
00046 {
00047   ACE_TRACE ("ACE_Timer_Heap_Iterator_T::ACE_Timer_Heap_Iterator");
00048   this->first ();
00049 }

template<class TYPE, class FUNCTOR, class ACE_LOCK>
ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::~ACE_Timer_Heap_Iterator_T ( void   ) 

Destructor.

Definition at line 52 of file Timer_Heap_T.cpp.

00053 {
00054 }


Member Function Documentation

template<class TYPE, class FUNCTOR, class ACE_LOCK>
void ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::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 60 of file Timer_Heap_T.cpp.

References ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::position_.

Referenced by ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::ACE_Timer_Heap_Iterator_T(), ACE_Timer_List_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::ACE_Timer_List_Iterator_T(), ACE_Timer_List_T< TYPE, FUNCTOR, ACE_LOCK >::earliest_time(), ACE_Timer_List_T< TYPE, FUNCTOR, ACE_LOCK >::get_first_i(), ACE_Timer_Heap_T< TYPE, FUNCTOR, ACE_LOCK >::iter(), and ACE_Timer_List_T< TYPE, FUNCTOR, ACE_LOCK >::remove_first().

00061 {
00062   this->position_ = 0;
00063 }

template<class TYPE, class FUNCTOR, class ACE_LOCK>
bool ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::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 78 of file Timer_Heap_T.cpp.

References ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::position_, and ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::timer_heap_.

00079 {
00080   return this->position_ == this->timer_heap_.cur_size_;
00081 }

template<class TYPE, class FUNCTOR, class ACE_LOCK>
ACE_Timer_Node_T< TYPE > * ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::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 86 of file Timer_Heap_T.cpp.

References ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::position_, and ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::timer_heap_.

00087 {
00088   if (this->position_ != this->timer_heap_.cur_size_)
00089     return this->timer_heap_.heap_[this->position_];
00090   return 0;
00091 }

template<class TYPE, class FUNCTOR, class ACE_LOCK>
void ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::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 69 of file Timer_Heap_T.cpp.

References ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::position_.

Referenced by ACE_Timer_List_T< TYPE, FUNCTOR, ACE_LOCK >::~ACE_Timer_List_T().

00070 {
00071   if (this->position_ != this->timer_heap_.cur_size_)
00072     ++this->position_;
00073 }


Member Data Documentation

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

Position in the array where the iterator is at.

Definition at line 68 of file Timer_Heap_T.h.

Referenced by ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::first(), ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::isdone(), ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::item(), and ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::next().

template<class TYPE, class FUNCTOR, class ACE_LOCK>
ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>& ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::timer_heap_ [protected]

Pointer to the ACE_Timer_Heap that we are iterating over.

Definition at line 65 of file Timer_Heap_T.h.

Referenced by ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::isdone(), and ACE_Timer_Heap_Iterator_T< TYPE, FUNCTOR, ACE_LOCK >::item().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:35:47 2010 for ACE by  doxygen 1.4.7