NT4/private/utils/ulib/inc/iterator.hxx
2020-09-30 17:12:29 +02:00

79 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.
Author:
David J. Gilman (davegi) 29-Oct-1990
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_