Open Search
    RefCountHashMap< K, V, HASH, HANDLER > Class Template Reference

    #include <refcount_hashmap.h>

    Detailed Description

    template<typename K, typename V, typename HASH = DefaultCompare, typename HANDLER = RefCountHashMapDefaultHandler>
    class maxon::RefCountHashMap< K, V, HASH, HANDLER >

    Use a RefCountHashMap for cache-like use cases where a map entry shall be automatically removed when it isn't used any longer.

    To add an entry to a RefCountHashMap, you have to use and store an EntryRef as in

    EntryRef ref;
    Bool created;
    V* value = ref.Set(map, key, created) iferr_return;
    PyObject * value
    Definition: abstract.h:715
    PyObject * key
    Definition: abstract.h:289
    maxon::Bool Bool
    Definition: ge_sys_math.h:55
    #define iferr_return
    Definition: resultbase.h:1521

    This will add an entry for key, and this entry will stay in the map as long as there are EntryRefs pointing to it. The map keeps track of those entries by means of reference counting.

    Classes

    class  Entry
     
    class  EntryRef
     

    Public Types

    using Map = HashMap< K, Entry, HASH >
     

    Public Member Functions

     ~RefCountHashMap ()
     
    String ToString (const FormatStatement *fmt=nullptr) const
     
    MapGetMap ()
     
    const MapGetMap () const
     

    Private Attributes

    Map _map
     

    Member Typedef Documentation

    ◆ Map

    using Map = HashMap<K, Entry, HASH>

    Constructor & Destructor Documentation

    ◆ ~RefCountHashMap()

    Member Function Documentation

    ◆ ToString()

    String ToString ( const FormatStatement fmt = nullptr) const

    ◆ GetMap() [1/2]

    Map& GetMap ( )

    ◆ GetMap() [2/2]

    const Map& GetMap ( ) const

    Member Data Documentation

    ◆ _map

    Map _map
    private