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.
|
|
/* slist.h
* * Copyright (c) 1996 by Microsoft Corporation * * Written by: Christos Tsollis * * Revisions: * * Abstract: * * This is the interface to a single linked list data structure. * The values in a list are DWORD values. So, for example, if the * value is really a pointer, it has to be converted into a DWORD before being passed into a * member list function. * */
#ifndef _SINGLE_LIST2_H_
#define _SINGLE_LIST2_H_
#include <windows.h>
#define DEFAULT_NUMBER_OF_ITEMS 15
class SListClass {
public: SListClass (DWORD num_of_items = DEFAULT_NUMBER_OF_ITEMS); ~SListClass (); void append (DWORD_PTR new_key); BOOL find (DWORD_PTR Key); DWORD_PTR read (DWORD index = 0); DWORD_PTR get (); DWORD_PTR removeLast (); BOOL iterate (DWORD_PTR *pKey); void prepend (DWORD_PTR new_key); void remove (DWORD_PTR Key);
void reset () { CurrOffset = 0xFFFFFFFF; }; // resets the list iterator
DWORD entries () { return NumOfEntries; }; // returns the number of entries in the list
void clear () { NumOfEntries = 0; HeadOffset = 0; CurrOffset = 0xFFFFFFFF; }; // clears up the list. The list contains no values afterwards.
BOOL isEmpty () { return ((NumOfEntries == 0) ? TRUE : FALSE); };
private: DWORD NumOfEntries; // current # of entries in the list
DWORD MaxEntries; // max # of entries that the array can hold
DWORD_PTR *Entries; // Circular array of entries
DWORD HeadOffset; // Offset of the 1st entry in the circular array
DWORD CurrOffset; // Iterator value
BOOL Expand (void); };
typedef SListClass * PSListClass;
#endif
|