## NAME

ACE_Unbounded_Queue_Iterator - Implement an iterator over an unbounded queue.

## SYNOPSIS

    #include <ace/Containers.h>

    template<class T>
    class ACE_Unbounded_Queue_Iterator
    {
      public:
        ACE_Unbounded_Queue_Iterator (
            ACE_Unbounded_Queue<T> &q,
            int end = 0
            );
        int next (T *&next_item);
        int advance (void);
        int first (void);
        int done (void) const;
        void dump (void) const;
        ACE_ALLOC_HOOK_DECLARE;
      private:
        ACE_Node<T> *current_;
        ACE_Unbounded_Queue<T> &queue_;
    };

## Initialization method.

    ACE_Unbounded_Queue_Iterator (ACE_Unbounded_Queue<T> &q, int end = 0);

## Iteration methods.

    int next (T *&next_item);

Pass back the `next_item` that hasn't been seen in the queue. Returns 0 when all items have been seen, else 1.

    int advance (void);

Move forward by one element in the set. Returns 0 when all the items in the queue have been seen, else 1.

    int first (void);

Move to the first element in the queue. Returns 0 if the queue is empty, else 1.

    int done (void) const;

Returns 1 when all items have been seen, else 0.

    void dump (void) const;

Dump the state of an object.

    ACE_ALLOC_HOOK_DECLARE;

Declare the dynamic allocation hooks.

## AUTHOR

Doug Schmidt

## LIBRARY

ace