HashMapEntryBase< K, V, ENTRY_HANDLER, LAYOUT > Class Template Reference

#include <hashmap.h>

Inheritance diagram for HashMapEntryBase< K, V, ENTRY_HANDLER, LAYOUT >:

Detailed Description

template<typename K, typename V, typename ENTRY_HANDLER, HASHMAP_ENTRY_LAYOUT LAYOUT = ENTRY_HANDLER::LAYOUT>
class maxon::HashMapEntryBase< K, V, ENTRY_HANDLER, LAYOUT >

Base class for HashMap::Entry.

Public Types

using EntryHandler = ENTRY_HANDLER
 
using HashValueType = typename ENTRY_HANDLER::HashValueType
 

Public Member Functions

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)
 

Public Attributes

decltype(ENTRY_HANDLER::GetKey(*(V *) nullptr) GetKey )() const
 
decltype(ENTRY_HANDLER::GetKey(*(V *) nullptr) GetFirst )() const
 

Protected Member Functions

 MAXON_DISALLOW_COPY_AND_ASSIGN (HashMapEntryBase)
 

Protected Attributes

HashMapEntryBase_next
 
HashValueType _hashCode
 
_value
 

Member Typedef Documentation

◆ EntryHandler

using EntryHandler = ENTRY_HANDLER

◆ HashValueType

using HashValueType = typename ENTRY_HANDLER::HashValueType

Constructor & Destructor Documentation

◆ HashMapEntryBase() [1/3]

HashMapEntryBase ( HashValueType  hash)
explicit

◆ HashMapEntryBase() [2/3]

HashMapEntryBase ( HashValueType  hash,
const KEY &   
)

◆ HashMapEntryBase() [3/3]

HashMapEntryBase ( HashValueType  hash,
const KEY &  ,
A &&  value 
)

Member Function Documentation

◆ GetValue() [1/2]

V& GetValue ( )

Returns this entry's value.

Returns
Value of this entry.

◆ GetValue() [2/2]

const V& GetValue ( ) const

Returns this entry's value.

Returns
Value of this entry.

◆ GetSecond() [1/2]

V& GetSecond ( )

Returns this entry's value.

Returns
Value of this entry.

◆ GetSecond() [2/2]

const V& GetSecond ( ) const

Returns this entry's value.

Returns
Value of this entry.

◆ SetValue() [1/2]

void SetValue ( const V &  value)

Sets the value of this entry by copy assignment.

Parameters
[in]valueNew value.

◆ SetValue() [2/2]

void SetValue ( V &&  value)

Sets the value of this entry by move assignment.

Parameters
[in]valueNew value.

◆ ResetValue()

void ResetValue ( )

◆ GetKeyHashCode()

const HashValueType& GetKeyHashCode ( ) const

◆ GetMemorySize()

Int GetMemorySize ( ) const

◆ MAXON_DISALLOW_COPY_AND_ASSIGN()

MAXON_DISALLOW_COPY_AND_ASSIGN ( HashMapEntryBase< K, V, ENTRY_HANDLER, LAYOUT >  )
protected

Member Data Documentation

◆ GetKey

decltype(ENTRY_HANDLER::GetKey(*(V*) nullptr) GetKey) () const

Returns this entry's key.

Returns
Key of this entry.

◆ GetFirst

decltype(ENTRY_HANDLER::GetKey(*(V*) nullptr) GetFirst) () const

Returns this entry's key.

Returns
Key of this entry.

◆ _next

HashMapEntryBase* _next
protected

◆ _hashCode

HashValueType _hashCode
protected

◆ _value

V _value
protected