diff --git a/storm/hash/TSHashTable.hpp b/storm/hash/TSHashTable.hpp index ab6cd2d..3282bde 100644 --- a/storm/hash/TSHashTable.hpp +++ b/storm/hash/TSHashTable.hpp @@ -8,30 +8,14 @@ template class TSHashTable { public: - // Member variables - STORM_EXPLICIT_LIST(T, m_linktofull) m_fulllist; - uint32_t m_fullnessIndicator = 0; - TSGrowableArray m_slotlistarray; - uint32_t m_slotmask = -1; - // Virtual member functions - virtual void InternalDelete(T* ptr); - virtual T* InternalNew(STORM_EXPLICIT_LIST(T, m_linktoslot)* listptr, size_t extrabytes, uint32_t flags); virtual ~TSHashTable(); virtual void Destroy(); // Member functions void Clear(); - uint32_t ComputeSlot(uint32_t hashval); - int32_t GetLinkOffset(); T* Head(); - void Initialize(); - bool Initialized(); void Insert(T* ptr, uint32_t hashval, const TKey& key); - void InternalClear(int32_t warn); - void InternalLinkNode(T* ptr, uint32_t hashval); - T* InternalNewNode(uint32_t, size_t extrabytes, uint32_t flags); - int32_t MonitorFullness(uint32_t slot); T* New(const char* str, size_t extrabytes, uint32_t flags); T* New(uint32_t hashval, const char* str, size_t extrabytes, uint32_t flags); T* New(uint32_t hashval, const TKey& key, size_t extrabytes, uint32_t flags); @@ -39,6 +23,32 @@ class TSHashTable { T* Ptr(const char* str); T* Ptr(uint32_t hashval, const TKey& key); void Unlink(T* ptr); + + protected: + // Member variables + STORM_EXPLICIT_LIST(T, m_linktofull) m_fulllist; + + // Member functions + int32_t GetLinkOffset(); + + private: + // Member variables + uint32_t m_fullnessIndicator = 0; + TSGrowableArray m_slotlistarray; + uint32_t m_slotmask = -1; + + // Virtual member functions + virtual void InternalDelete(T* ptr); + virtual T* InternalNew(STORM_EXPLICIT_LIST(T, m_linktoslot)* listptr, size_t extrabytes, uint32_t flags); + + // Member functions + uint32_t ComputeSlot(uint32_t hashval); + void Initialize(); + bool Initialized(); + void InternalClear(int32_t warn); + void InternalLinkNode(T* ptr, uint32_t hashval); + T* InternalNewNode(uint32_t, size_t extrabytes, uint32_t flags); + int32_t MonitorFullness(uint32_t slot); }; template