Leaked source code of windows server 2003
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:
intstack.hxx
Abstract:
This class implements a linked list integer stack.
Author:
Norbert P. Kusters (norbertk) 28-Dec-90
--*/
#if !defined(INTSTACK_DEFN)
#define INTSTACK_DEFN
#include "bigint.hxx"
#if defined ( _AUTOCHECK_ )
#define IFSUTIL_EXPORT
#elif defined ( _IFSUTIL_MEMBER_ )
#define IFSUTIL_EXPORT __declspec(dllexport)
#else
#define IFSUTIL_EXPORT __declspec(dllimport)
#endif
DECLARE_CLASS( INTSTACK );
DEFINE_TYPE( struct _INTNODE, INTNODE );
struct _INTNODE { PINTNODE Next; BIG_INT Data; };
class INTSTACK : public OBJECT {
public:
IFSUTIL_EXPORT DECLARE_CONSTRUCTOR( INTSTACK );
VIRTUAL IFSUTIL_EXPORT ~INTSTACK( );
NONVIRTUAL IFSUTIL_EXPORT BOOLEAN Initialize( );
NONVIRTUAL IFSUTIL_EXPORT BOOLEAN Push( IN BIG_INT Data );
NONVIRTUAL IFSUTIL_EXPORT VOID Pop( IN ULONG HowMany DEFAULT 1 );
NONVIRTUAL IFSUTIL_EXPORT BIG_INT Look( IN ULONG Index DEFAULT 0 ) CONST;
NONVIRTUAL ULONG QuerySize( ) CONST;
NONVIRTUAL BOOLEAN IsMember( IN BIG_INT Data ) CONST;
NONVIRTUAL IFSUTIL_EXPORT BOOLEAN ReverseCopy( IN PINTSTACK x );
private:
NONVIRTUAL VOID Construct ( );
NONVIRTUAL VOID Destroy( );
PINTNODE _stack; ULONG _size;
};
INLINE ULONG INTSTACK::QuerySize( ) CONST /*++
Routine Description:
This routine computes the number of elements in the stack.
Arguments:
None.
Return Value:
The number of elements in the stack.
--*/ { return _size; }
#endif // INTSTACK_DEFN
|