This is the documentation for Enlighten.
class Geo GeoHashMap
template<typename, typename, typename, typename>
class Geo::GeoHashMap
The hash table.
It's a straight forward key/value hash table where every key has one associated value (so it's a hash map, rather than a hash multi map).
Typedefs
Name | Description |
---|---|
GeoHashConstHandle< GeoHashMap > ConstHandle | A const handle to an entry in the container. |
const DataType & DataParamType | The Data type stored internally when passed as a parameter. |
GeoPair< KeyType, ValueType > DataType | The Data type stored internally. |
GeoHashHandle< GeoHashMap > Handle | A handle to an entry in the container. |
tHashFunctor HashFunctor | The specified Hash Functor type. |
tKeyCmp KeyCompareFunctor | The specified Key Compare type. |
const KeyType & KeyParamType | The Key type when passed as a parameter. |
tKey KeyType | The specified Key type. |
const ValueType & ValueParamType | The Value type when passed as a parameter. |
tValue ValueType | The specified Value type. |
Variables
Name | Description |
---|---|
const u32 MemoryAlignment = GEO_ALIGN_OF(DataType) > GEO_ALIGN_OF(u32) ? GEO_ALIGN_OF(DataType) : GEO_ALIGN_OF(u32) | The required alignment of the memory block passed to the appropriate GeoHashMap constructor. |
Functions
Name | Description |
---|---|
~GeoHashMap() | Delete. |
CalcMemoryUsage(u32) | Gets the amount of memory (in bytes) required by a GeoHashMap with the given capacity. |
Clear() | Clears the table. |
Exists(KeyParamType) | This returns true if the key exists. |
GeoHashMap(u32, float, HashFunctor, KeyCompareFunctor) | Construct a hash table. |
GeoHashMap(void *, u32, HashFunctor, KeyCompareFunctor) | Construct a hash table using the given block of memory for storage. The given block must be at least the size returned by CalcMemoryUsage() and be 4-byte aligned. |
GeoHashMap(const GeoHashMap &) | Copy-constructor. |
GeoHashMap(GeoHashMap &&) | Move constructor. |
operator=(const GeoHashMap &) | Assignment operator. |
operator=(GeoHashMap &&) | Move assignment operator. |
Remove(KeyParamType) | Removes the key/value pair indexed by this key. |
Remove(Handle) | Removes the key/value pair reference by the handle. |
Swap(GeoHashMap &) | Swap places with another table. |
Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::~GeoHashMap
public: ~GeoHashMap()
Delete.
This will erase everything from the table.
Warning
Invalidates all existing handles.
static u32 Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::CalcMemoryUsage
public: u32 CalcMemoryUsage
(
  u32 capacity
)
Gets the amount of memory (in bytes) required by a GeoHashMap with the given capacity.
This is the size of the memory block which must be passed to the appropriate GeoHashMap constructor.
void Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::Clear
public: void Clear()
Clears the table.
Warning
Invalidates all existing handles.
bool Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::Exists
public: bool Exists
(
  KeyParamType key
) const
This returns true if the key exists.
Note
If you intend to access the value if it does exist it's more efficient to use Find().
Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::GeoHashMap
public: GeoHashMap
(
  u32 capacity,
  float loadLimit,
  HashFunctor h,
  KeyCompareFunctor cmp
)
Construct a hash table.
The last two parameters are optional and you won't need to specify them unless you are using a non-default hash or key compare functor that needs to be constructed with something other than the default constructor.
Parameters
[in] | capacity | This is the minimum size of the table. |
[in] | loadLimit | The load factor at which the table will grow (recommended value: 0.5. Specifying zero disables growth) |
[in] | h | The hashing function (can be ignored) |
[in] | cmp | The key comparison function (can be ignored) |
Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::GeoHashMap
public: GeoHashMap
(
  void * memory,
  u32 capacity,
  HashFunctor h,
  KeyCompareFunctor cmp
)
Construct a hash table using the given block of memory for storage. The given block must be at least the size returned by CalcMemoryUsage() and be 4-byte aligned.
Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::GeoHashMap
public: GeoHashMap
(
  const GeoHashMap & rhs
)
Copy-constructor.
Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::GeoHashMap
public: GeoHashMap
(
  GeoHashMap && rhs
)
Move constructor.
GeoHashMap& Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::operator=
public: GeoHashMap & operator=
(
  const GeoHashMap & rhs
)
Assignment operator.
Warning
Invalidates all existing handles.
GeoHashMap& Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::operator=
public: GeoHashMap & operator=
(
  GeoHashMap && rhs
)
Move assignment operator.
Warning
Invalidates all existing handles.
bool Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::Remove
public: bool Remove
(
  KeyParamType key
)
Removes the key/value pair indexed by this key.
Returns
Returns true if the key was found and removed, otherwise false if the key doesn't exist.
Warning
Invalidates all existing handles.
void Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::Remove
public: void Remove
(
  Handle h
)
Removes the key/value pair reference by the handle.
Warning
Invalidates all existing handles.
void Geo::GeoHashMap< tKey, tValue, tHashFunctor, tKeyCmp >::Swap
public: void Swap
(
  GeoHashMap & other
)
Swap places with another table.
Warning
Invalidates all existing handles.