## NAME

ACE_Stream_Iterator - Iterate through an `ACE_Stream`.

## SYNOPSIS

    #include <ace/Stream.h>

    template<ACE_SYNCH_DECL>
    class ACE_Stream_Iterator
    {
      public:
        ACE_Stream_Iterator (const ACE_Stream<ACE_SYNCH_USE> &sr);
        int next (const ACE_Module<ACE_SYNCH_USE> *&next_item);
        int done (void) const;
        int advance (void);
      private:
        ACE_Module<ACE_SYNCH_USE> *next_;
    };

## Initialization method.

    ACE_Stream_Iterator (const ACE_Stream<ACE_SYNCH_USE> &sr);

## Iteration methods.

    int next (const ACE_Module<ACE_SYNCH_USE> *&next_item);

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

    int done (void) const;

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

    int advance (void);

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

## AUTHOR

Doug Schmidt

## LIBRARY

ace