chore(hash): clean up visibility in TSHashTable

This commit is contained in:
fallenoak 2023-03-26 18:10:21 -05:00 committed by GitHub
parent 8a232d34f2
commit ce1c33d88b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -8,30 +8,14 @@
template <class T, class TKey>
class TSHashTable {
public:
// Member variables
STORM_EXPLICIT_LIST(T, m_linktofull) m_fulllist;
uint32_t m_fullnessIndicator = 0;
TSGrowableArray<STORM_EXPLICIT_LIST(T, m_linktoslot)> 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<STORM_EXPLICIT_LIST(T, m_linktoslot)> 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 <class T, class TKey>