77 lines
1.8 KiB
C++
77 lines
1.8 KiB
C++
/****************************************************************************/
|
|
/** Microsoft OS/2 LAN Manager **/
|
|
/** Copyright(c) Microsoft Corp., 1990 **/
|
|
/****************************************************************************/
|
|
|
|
/****************************************************************************\
|
|
|
|
iter.hxx
|
|
LM 3.0 abstract iterator class
|
|
|
|
This file contains the definition for the abstract iterator class that
|
|
other iterators should inherit from and emulate.
|
|
|
|
FILE HISTORY:
|
|
|
|
johnl 27-Jun-1990 Created
|
|
|
|
\****************************************************************************/
|
|
|
|
/****************************************************************************\
|
|
*
|
|
*NAME: ITER
|
|
*
|
|
*WORKBOOK: ITER
|
|
*
|
|
*SYNOPSIS: Abstract iterator class
|
|
*
|
|
*INTERFACE: ITER_OF(type) - Defines an abstract iterator of type (generally
|
|
* used by child classes).
|
|
*
|
|
* DECLARE_ITER_OF(type) - Produces declaration for an iterator
|
|
* of type "type".
|
|
*
|
|
* virtual void Reset( ) - Puts iterator in the "initial"
|
|
* state (i.e., as if it had just
|
|
* been declared).
|
|
*
|
|
* virtual type* Next( ) - Returns "next" item in collection,
|
|
* returns NULL if the coll. is empty
|
|
* or we have iterated past last item.
|
|
*
|
|
* virtual type* operator()() - Synonym for Next()
|
|
*
|
|
*PARENT:
|
|
*
|
|
*USES: NONE
|
|
*
|
|
*CAVEATS: NONE
|
|
*
|
|
*
|
|
*
|
|
*HISTORY:
|
|
* Johnl 27-Jun-1990
|
|
*
|
|
*
|
|
\****************************************************************************/
|
|
|
|
|
|
#ifndef _ITER_HXX_
|
|
#define _ITER_HXX_
|
|
|
|
#define ITER_OF(type) iter_of_##type
|
|
|
|
#define DECL_ITER_OF(type,dec) \
|
|
class dec ITER_OF(type) \
|
|
{ \
|
|
public: \
|
|
virtual void Reset( void ) = 0 ; \
|
|
virtual type* Next( void ) = 0 ; \
|
|
\
|
|
}; \
|
|
|
|
#define DECLARE_ITER_OF(type) \
|
|
DECL_ITER_OF(type,DLL_TEMPLATE)
|
|
|
|
#endif //_ITER_HXX_
|