Source code of Windows XP (NT5)
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.
|
|
/*++
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_
|