X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bcaa23de098c1276b3f35716c9ea8b73cf3599bd..0f8df1b95c1dc5cc633fb2fd1127bd28028896f7:/include/wx/hash.h diff --git a/include/wx/hash.h b/include/wx/hash.h index 650ffe1eee..cf10d040c8 100644 --- a/include/wx/hash.h +++ b/include/wx/hash.h @@ -17,6 +17,7 @@ #endif #include "wx/list.h" +#include "wx/dynarray.h" // the default size of the hash #define wxHASH_SIZE_DEFAULT (1000) @@ -71,6 +72,43 @@ private: DECLARE_NO_COPY_CLASS(wxHashTableBase); }; +// ---------------------------------------------------------------------------- +// a hash table which stores longs +// ---------------------------------------------------------------------------- + +class WXDLLEXPORT wxHashTableLong : public wxObject +{ +public: + wxHashTableLong(size_t size = wxHASH_SIZE_DEFAULT) { Init(size); } + virtual ~wxHashTableLong(); + + void Create(size_t size = wxHASH_SIZE_DEFAULT); + void Destroy(); + + size_t GetSize() const { return m_hashSize; } + size_t GetCount() const { return m_count; } + + void Put(long key, long value); + long Get(long key) const; + long Delete(long key); + +protected: + void Init(size_t size); + +private: + wxArrayLong **m_values, + **m_keys; + + // the size of array above + size_t m_hashSize; + + // the total number of elements in the hash + size_t m_count; + + // not implemented yet + DECLARE_NO_COPY_CLASS(wxHashTableLong); +}; + // ---------------------------------------------------------------------------- // for compatibility only // ----------------------------------------------------------------------------