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_
|