--- parser3/src/include/pa_hash.h 2001/01/27 15:00:04 1.3 +++ parser3/src/include/pa_hash.h 2001/01/29 11:53:42 1.7 @@ -1,5 +1,5 @@ /* - $Id: pa_hash.h,v 1.3 2001/01/27 15:00:04 paf Exp $ + $Id: pa_hash.h,v 1.7 2001/01/29 11:53:42 paf Exp $ */ /* @@ -26,7 +26,7 @@ public: private: friend Pool; - // expand when used these %% of size + // expand when these %% of size exausted enum { THRESHOLD_PERCENT=75 }; @@ -34,10 +34,10 @@ private: // the pool I'm allocated on Pool *pool; - // the index of size in sizes + // the index of [size] in [sizes] int size_index; - // possible sizes. prime numbers + // possible [sizes]. prime numbers static uint sizes[]; static int sizes_count; @@ -73,16 +73,27 @@ private: Hash(Pool *apool); - bool full() { - return used==threshold; - } + // filled to threshold: needs expanding + bool full() { return used==threshold; } + + // allocate larger buffer & rehash void expand(); public: + // useful generic hash function static uint generic_code(uint aresult, char *start, uint size); - void put(Key& key, Value *value); - Value* get(Key& key); + + // put a [value] under the [key] + /*SYNCHRONIZED*/ void put(Key& key, Value *value); + + // get associated [value] by the [key] + /*SYNCHRONIZED*/ Value* get(Key& key); + +private: //disabled + + Hash& operator = (Hash& src) { return *this; } + Hash(Hash& src) {} }; #endif