Tools.h++ Manual
104011 Tandem Computers Incorporated 21-133
21
RWIterator
Synopsis
#include <rw/iterator.h>
typedef RWIterator Iterator;// "Smalltalk" typedef
Description Class
RWIterator
is an abstract base class for iterators used by the Smalltalk-
like collection classes. The class contains virtual functions for positioning and
resetting the iterator. They are all pure virtual functions, meaning that deriving
classes must supply a definition. The descriptions below are intended to be
generic—all inheriting iterators generally follow the described pattern.
Public virtual functions
virtual RWCollectable* findNext(const RWCollectable*
target) = 0;
Moves the iterator forward to the next item which "matches" the object pointed
to by
target
and returns it or nil if no item was found. For most collections,
an item "matches" the target if either
isEqual()
or
compareTo()
find
equivalence, whichever is appropriate for the actual collection type. However,
when an iterator is used with an "identity collection" (i.e.,
RWIdentitySet
and
RWIdentityDictionary
), it looks for an item with the same address (i.e., "is
identical to").
virtual RWCollectable* key() const = 0;
Returns the item at the current iterator position.
virtual RWCollectable* operator()() = 0;
Advances the iterator and returns the next item, or nil if the end of the
collection has been reached.
virtual void reset() = 0;
Resets the iterator to the state it had immediately after construction.