/* FILE IDENTIFICATION
**
-** File Name: hashtable.h
-** Author: Kevin Rosenberg
-** Purpose: Header file for hash table library
-** Date Started: Dec. 2000
+** File Name: hashtable.h
+** Author: Kevin Rosenberg
+** Purpose: Header file for hash table library
+** Date Started: Dec. 2000
**
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: hashtable.h,v 1.3 2001/01/28 19:10:18 kevin Exp $
+** $Id$
**
**
** This program is free software; you can redistribute it and/or modify
std::string m_strKeyword;
int m_iCode;
class KeywordCodeEntry *m_pNext;
-
+
public:
-
+
KeywordCodeEntry (const char* const pszKeyword, int iCode);
-
+
const char* const getKeyword() const
{ return m_strKeyword.c_str(); }
int getCode () const
{ return m_iCode; }
-
- void setCode (int iCode)
+
+ void setCode (int iCode)
{ m_iCode = iCode; }
-
+
void setNext (KeywordCodeEntry* pNext)
{ m_pNext = pNext; }
-
+
KeywordCodeEntry* getNext ()
{ return m_pNext; }
};
enum {
HASHSIZE = 100,
};
-
+
KeywordCodeHashTable()
{ initTable(); }
-
+
~KeywordCodeHashTable()
{ freeTable(); }
-
+
void installKeywordCode (const char* const pszKeyword, int iCode);
KeywordCodeEntry* lookup (const char* const pszKeyword);
-
+
private:
KeywordCodeEntry* m_hashTable[HASHSIZE];
-
+
int hash (const char* s);
void initTable ();
void freeTable ();