75 lines
1.1 KiB
C++
75 lines
1.1 KiB
C++
/*++
|
|
|
|
Copyright (c) 1990 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
iterator.hxx
|
|
|
|
Abstract:
|
|
|
|
This module contains the declaration for the abstract ITERATOR class.
|
|
ITERATORS are used to iterate over a CONTAINER allowing for multiple,
|
|
simultaneous readers. ITERATORs maintain the currency needed to perform
|
|
an iteration. This includes the current OBJECT in the CONTAINER and the
|
|
currency needed to get the next or previous OBJECT. ITERATORs also
|
|
provide the capability of wrapping when the end or begin of the container
|
|
is reached.
|
|
|
|
Environment:
|
|
|
|
ULIB, User Mode
|
|
|
|
--*/
|
|
|
|
#if ! defined( _ITERATOR_ )
|
|
|
|
#define _ITERATOR_
|
|
|
|
DECLARE_CLASS( ITERATOR );
|
|
|
|
|
|
class ITERATOR : public OBJECT {
|
|
|
|
public:
|
|
|
|
VIRTUAL
|
|
~ITERATOR(
|
|
);
|
|
|
|
VIRTUAL
|
|
POBJECT
|
|
FindNext(
|
|
IN PCOBJECT Key
|
|
);
|
|
|
|
VIRTUAL
|
|
POBJECT
|
|
GetCurrent(
|
|
) PURE;
|
|
|
|
VIRTUAL
|
|
POBJECT
|
|
GetNext(
|
|
) PURE;
|
|
|
|
VIRTUAL
|
|
POBJECT
|
|
GetPrevious(
|
|
) PURE;
|
|
|
|
VIRTUAL
|
|
VOID
|
|
Reset(
|
|
) PURE;
|
|
|
|
|
|
protected:
|
|
|
|
DECLARE_CONSTRUCTOR( ITERATOR );
|
|
|
|
};
|
|
|
|
|
|
#endif // _ITERATOR_
|