## NAME

ACE_Timer_Hash_Iterator_T - Iterates over an `ACE_Timer_Hash`.

## SYNOPSIS

    #include <ace/Timer_Hash_T.h>

    template<class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
    class ACE_Timer_Hash_Iterator_T :
      public ACE_Timer_Queue_Iterator_T <TYPE, FUNCTOR, ACE_LOCK>
    {
      public:
        ACE_Timer_Hash_Iterator_T (
            ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET> &
            );
        virtual void first (void);
        virtual void next (void);
        virtual int isdone (void);
        virtual ACE_Timer_Node_T<TYPE> *item (void);
      protected:
        ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET> &timer_hash_;
        size_t position_;
            ACE_Timer_Queue_Iterator_T<TYPE, ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>, ACE_Null_Mutex> *iter_;

    };

## DESCRIPTION

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.

## PUBLIC MEMBERS

    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 int isdone (void);

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 MEMBERS

    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

## AUTHOR

Darrell Brunsch `brunsch@cs.wustl.edu`

## LIBRARY

ace