Open Search
    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