HashMap< K, V, HASH, ENTRY_HANDLER, ALLOCATOR, MODE, INITIAL_CAPACITY, LOAD_FACTOR, ENTRY_ALLOCATOR >::Entry Class Reference

#include <hashmap.h>

Inheritance diagram for HashMap< K, V, HASH, ENTRY_HANDLER, ALLOCATOR, MODE, INITIAL_CAPACITY, LOAD_FACTOR, ENTRY_ALLOCATOR >::Entry:

Detailed Description

template<typename K, typename V, typename HASH = DefaultCompare, typename ENTRY_HANDLER = HashMapKeyValuePair, typename ALLOCATOR = DefaultAllocator, HASHMAP_MODE MODE = HASHMAP_MODE::DEFAULT, Int INITIAL_CAPACITY = 16, Int LOAD_FACTOR = (MODE == HASHMAP_MODE::SYNCHRONIZED) ? 0 : 10, typename ENTRY_ALLOCATOR = ALLOCATOR>
class maxon::HashMap< K, V, HASH, ENTRY_HANDLER, ALLOCATOR, MODE, INITIAL_CAPACITY, LOAD_FACTOR, ENTRY_ALLOCATOR >::Entry

Class used for entries of the HashMap. The entries of a bucket are stored as a singly linked list, you can loop over this list via GetNextInBucket().

Public Types

using KeyType = K
 
using ValueType = V
 
- Public Types inherited from HashMapEntryBase< K, V, ENTRY_HANDLER, LAYOUT >
using EntryHandler = ENTRY_HANDLER
 
using HashValueType = typename ENTRY_HANDLER::HashValueType
 

Public Member Functions

 operator Pair< K, V > () const
 
const EntryGetNextWithSameKey () const
 
EntryGetNextWithSameKey ()
 
const EntryGetNextInBucket () const
 
EntryGetNextInBucket ()
 
void PrivateInitNextInBucket (Entry *next)
 
SFINAEHelper< String, V >::type ToString (const FormatStatement *format=nullptr) const
 
Int GetMemorySize () const
 
- Public Member Functions inherited from HashMapEntryBase< K, V, ENTRY_HANDLER, LAYOUT >
V & GetValue ()
 
const V & GetValue () const
 
V & GetSecond ()
 
const V & GetSecond () const
 
void SetValue (const V &value)
 
void SetValue (V &&value)
 
void ResetValue ()
 
const HashValueTypeGetKeyHashCode () const
 
Int GetMemorySize () const
 
 HashMapEntryBase (HashValueType hash)
 
template<typename KEY >
 HashMapEntryBase (HashValueType hash, const KEY &)
 
template<typename KEY , typename A >
 HashMapEntryBase (HashValueType hash, const KEY &, A &&value)
 

Private Member Functions

 MAXON_DISALLOW_COPY_AND_ASSIGN (Entry)
 

Friends

class HashMap
 

Additional Inherited Members

- Public Attributes inherited from HashMapEntryBase< K, V, ENTRY_HANDLER, LAYOUT >
decltype(ENTRY_HANDLER::GetKey(*(V *) nullptr) GetKey )() const
 
decltype(ENTRY_HANDLER::GetKey(*(V *) nullptr) GetFirst )() const
 
- Protected Member Functions inherited from HashMapEntryBase< K, V, ENTRY_HANDLER, LAYOUT >
 MAXON_DISALLOW_COPY_AND_ASSIGN (HashMapEntryBase)
 
- Protected Attributes inherited from HashMapEntryBase< K, V, ENTRY_HANDLER, LAYOUT >
HashMapEntryBase_next
 
HashValueType _hashCode
 
_value
 

Member Typedef Documentation

◆ KeyType

using KeyType = K

◆ ValueType

using ValueType = V

Member Function Documentation

◆ operator Pair< K, V >()

operator Pair< K, V > ( ) const

◆ GetNextWithSameKey() [1/2]

const Entry* GetNextWithSameKey ( ) const

Returns the next entry with the same key. This is needed for multi-maps to iterate over all entries for a key, see InsertMultiEntry().

Returns
Next entry with the same key, or nullptr if there is no further entry with the same key.

◆ GetNextWithSameKey() [2/2]

Entry* GetNextWithSameKey ( )

Returns the next entry with the same key. This is needed for multi-maps to iterate over all entries for a key, see InsertMultiEntry().

Returns
Next entry with the same key, or nullptr if there is no further entry with the same key.

◆ GetNextInBucket() [1/2]

const Entry* GetNextInBucket ( ) const

Returns the next entry in the same bucket.

Returns
Next entry in bucket, or nullptr if this is the last entry.

◆ GetNextInBucket() [2/2]

Entry* GetNextInBucket ( )

Returns the next entry in the same bucket.

Returns
Next entry in bucket, or nullptr if this is the last entry.

◆ PrivateInitNextInBucket()

void PrivateInitNextInBucket ( Entry next)

◆ ToString()

SFINAEHelper<String, V>::type ToString ( const FormatStatement format = nullptr) const

◆ GetMemorySize()

Int GetMemorySize ( void  ) const

◆ MAXON_DISALLOW_COPY_AND_ASSIGN()

MAXON_DISALLOW_COPY_AND_ASSIGN ( Entry  )
private

Friends And Related Function Documentation

◆ HashMap

friend class HashMap
friend