1//////////////////////////////////////////////////////////////////////////////// 2// 3// File: SFHash.h 4// 5// Date: December 1999 6// 7// Author: Daniel Switkin 8// 9// Copyright 2003 (c) by Daniel Switkin. This file is made publically available 10// under the BSD license, with the stipulations that this complete header must 11// remain at the top of the file indefinitely, and credit must be given to the 12// original author in any about box using this software. 13// 14//////////////////////////////////////////////////////////////////////////////// 15 16// Additional authors: Stephan A��mus, <superstippi@gmx.de> 17// John Scipione, <jscipione@gmail.com> 18 19#ifndef SFHASH_H 20#define SFHASH_H 21 22 23class HashItem { 24 friend class SFHash; 25public: 26 unsigned int key; 27private: 28 HashItem* next; 29}; 30 31 32class SFHash { 33public: 34 SFHash(int size = 4096); 35 virtual ~SFHash(); 36 37 void AddItem(HashItem* item); 38 HashItem* GetItem(unsigned int key); 39 unsigned int CountItems(); 40 HashItem* NextItem(); 41 void Rewind(); 42 43 bool fatalerror; 44 45private: 46 int size; 47 int iterate_pos; 48 int iterate_depth; 49 50 HashItem** main_array; 51}; 52 53 54#endif // SFHASH_H 55