/* * lists.h - simple list class */ #ifndef INCLUDED_LISTS_H #define INCLUDED_LISTS_H class Item; class List{ public: Item *start; int count; List(void); ~List(void); int Add(Item *item); int Remove(Item *item); Item *Find(char *charvalue); Item *Find(char *charvalue,long longvalue); Item *FindWildMatch(char *charvalue); Item *FindWildMatch(char *charvalue,long longvalue); Item *FindPath(char *value,long longvalue,int *noslashflag); private: Item **last; }; class Item{ public: List *list; Item *next; Item **prev; char *charvalue; long longvalue; int charvaluelength; int allocatedcharvalue; Item(void); //Item(char *xvalue,int allocatecharvalue,long xlongvalue=0); virtual ~Item(void); }; class HashTable{ public: unsigned hashsize; int pathnames; List *table; HashTable(unsigned xhashsize=256,int xpathnames=0); ~HashTable(void); int Add(Item *item); int Remove(Item *item); void DeleteAll(void); Item *Find(char *charvalue); Item *Find(char *charvalue,long longvalue); Item *FindPath(char *value,long longvalue,int *noslashflag); unsigned hashfunction(char *arg); unsigned pathhashfunction(char *arg); }; #endif