You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
1.8 KiB
121 lines
1.8 KiB
/*++
|
|
|
|
Copyright (c) 1990 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
arrayit.hxx
|
|
|
|
Abstract:
|
|
|
|
This module contains the declaration for the ARRAY_ITERATOR class.
|
|
ARRAY_ITERATOR is a concrete implementation derived from the abstarct
|
|
ITERATOR class. It is used to 'read' (iterate) over an ARRAY object.
|
|
It has no public constructor and therefore can only be queried from an
|
|
ARRAY object. It is the client's responsibility to detsroy
|
|
ARRAY_ITERATORs when they are done. ARRAY_ITERATORs maintain the currency
|
|
for reading an ARRAY in order.
|
|
|
|
Environment:
|
|
|
|
ULIB, User Mode
|
|
|
|
--*/
|
|
|
|
#if ! defined( _ARRAY_ITERATOR_ )
|
|
|
|
#define _ARRAY_ITERATOR_
|
|
|
|
#include "iterator.hxx"
|
|
|
|
//
|
|
// Forward references
|
|
//
|
|
|
|
DECLARE_CLASS( ARRAY );
|
|
DECLARE_CLASS( ARRAY_ITERATOR );
|
|
|
|
|
|
class ARRAY_ITERATOR : public ITERATOR {
|
|
|
|
friend ARRAY;
|
|
|
|
public:
|
|
|
|
VIRTUAL
|
|
~ARRAY_ITERATOR(
|
|
);
|
|
|
|
VIRTUAL
|
|
VOID
|
|
Reset(
|
|
);
|
|
|
|
VIRTUAL
|
|
POBJECT
|
|
GetCurrent(
|
|
);
|
|
|
|
VIRTUAL
|
|
POBJECT
|
|
GetNext(
|
|
);
|
|
|
|
VIRTUAL
|
|
POBJECT
|
|
GetPrevious(
|
|
);
|
|
|
|
NONVIRTUAL
|
|
ULONG
|
|
QueryCurrentIndex(
|
|
);
|
|
|
|
protected:
|
|
|
|
DECLARE_CAST_MEMBER_FUNCTION( ARRAY_ITERATOR );
|
|
DECLARE_CONSTRUCTOR( ARRAY_ITERATOR );
|
|
|
|
NONVIRTUAL
|
|
BOOLEAN
|
|
Initialize(
|
|
IN OUT PARRAY Array
|
|
);
|
|
|
|
NONVIRTUAL
|
|
VOID
|
|
Construct(
|
|
);
|
|
|
|
private:
|
|
|
|
PARRAY _Array; // Array
|
|
ULONG _CurrentIndex; // Current index
|
|
|
|
};
|
|
|
|
|
|
INLINE
|
|
ULONG
|
|
ARRAY_ITERATOR::QueryCurrentIndex(
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Obtains the current index
|
|
|
|
Arguments:
|
|
|
|
None
|
|
|
|
Return Value:
|
|
|
|
ULONG - The current index
|
|
|
|
--*/
|
|
|
|
{
|
|
return _CurrentIndex;
|
|
}
|
|
#endif // _ARRAY_ITERATOR_
|