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.
|
|
//---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996 - 1997
//
// File: sdict.hxx
//
// Contents: simple dictionary
//
// History: 28-Feb-97 SophiaC Created.
//
//----------------------------------------------------------------------------
#ifndef __SDICT_HXX__
#define __SDICT_HXX__
#define INITIALDICTSLOTS 5
class SIMPLE_DICT { private:
void * * DictSlots; int cDictSlots; int cDictSize; int iNextItem; void * InitialDictSlots[INITIALDICTSLOTS];
public:
SIMPLE_DICT ( // Constructor.
);
~SIMPLE_DICT ( // Destructor.
);
int // Return the key in the dictionary for the item just inserted.
Insert ( // Insert an item in the dictionary and return its key.
void *Item // The item to insert.
);
void * // Returns the item if found, and 0 otherwise.
Find ( // Find an item in the dictionary.
int Key // The key of the item.
);
void * // Returns the item being deleted.
Delete ( // Delete an item from the dictionary.
int Key // The key of the item being deleted.
);
int // Returns the number of items in the dictionary.
Size ( // Returns the number of items in the dictionary.
) {return(cDictSize);}
void Reset ( // Resets the dictionary, so that when Next is called,
// the first item will be returned.
) {iNextItem = 0;}
void * // Returns the next item or 0 if at the end.
Next ( );
void * DeleteItemByBruteForce( void * Item ); };
#define NEW_SDICT(TYPE) \
\ class TYPE; \ \ class TYPE##_DICT : public SIMPLE_DICT \ { \ public: \ \ TYPE##_DICT () {} \ ~TYPE##_DICT () {} \ \ TYPE * \ Find (int Key) \ {return((TYPE *) SIMPLE_DICT::Find(Key));} \ \ TYPE * \ Delete (int Key) \ {return((TYPE *) SIMPLE_DICT::Delete(Key));} \ \ TYPE * \ Next () \ {return((TYPE *) SIMPLE_DICT::Next());} \ }
#endif // __SDICT_HXX__
|