Open Search
    JavaClassHash Class Reference

    #include <java_helper.h>

    Inheritance diagram for JavaClassHash:

    Public Member Functions

    JavaClassArrayGetClassArray (JNIEnv *env)
     
    - Public Member Functions inherited from HashMap< JNIEnv *, JavaClassArray >
     HashMap ()
     
     HashMap (const DefaultAllocator &alloc)
     
     HashMap (HashMap &&src)
     
     ~HashMap ()
     
     MAXON_OPERATOR_MOVE_ASSIGNMENT (HashMap)
     
    ResultMem SetCapacityHint (Int capacity, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
     
    ResultMem ResizeTable (Int capacity)
     
    void Reset ()
     
    void Flush ()
     
    Int GetCount () const
     
    Int GetTableSize () const
     
    Int GetMemorySize () const
     
    Int GetNonEmptyBucketCount () const
     
    Entry * GetNonEmptyBucket (Int i)
     
    const Entry * GetNonEmptyBucket (Int i) const
     
    Int GetOperationCountForSearch () const
     
    SFINAEHelper< Bool, typename MAP::IsHashMap >::type IsEqualImpl (const MAP &other, COMPARE &&cmp, OverloadRank1) const
     
    Entry * Find (const KEY &key)
     
    const Entry * Find (const KEY &key) const
     
    Opt< JavaClassArray & > FindValue (const KEY &key)
     
    Opt< const JavaClassArray & > FindValue (const KEY &key) const
     
    Result< Entry * > InsertCtorWithHash (KEY &&key, C &&constructor, HashValueType hash, Bool &created=BoolLValue())
     
    MAXON_ATTRIBUTE_FORCE_INLINE Result< Entry * > InsertCtor (KEY &&key, C &&constructor, Bool &created=BoolLValue())
     
    ResultRef< Entry > InsertEntry (const JNIEnv * &key, Bool &created=BoolLValue())
     
    ResultRef< Entry > InsertEntry (JNIEnv * &&key, Bool &created=BoolLValue())
     
    ResultRef< Entry > InsertEntry (KEY &&key, Bool &created=BoolLValue())
     
    ResultRef< JavaClassArrayInsertKey (const JNIEnv * &key, Bool &created=BoolLValue())
     
    ResultRef< JavaClassArrayInsertKey (JNIEnv * &&key, Bool &created=BoolLValue())
     
    ResultRef< JavaClassArrayInsertKey (KEY &&key, Bool &created=BoolLValue())
     
    Result< Entry * > InsertLambda (KEY &&key, LAMBDA &&lambda, Bool &created=BoolLValue())
     
    ResultRef< Entry > Insert (KEY &&key, const JavaClassArray &value, Bool &created=BoolLValue())
     
    ResultRef< Entry > Insert (KEY &&key, JavaClassArray &&value, Bool &created=BoolLValue())
     
    ResultRef< Entry > InsertMultiEntry (KEY &&key)
     
    ResultMem InsertMultiEntry (Entry *e, HashValueType hash)
     
    ResultOk< void > Erase (const Entry *entry, Bool deleteEntry=true)
     
    ResultOk< void > Erase (Entry *entry, Bool deleteEntry=true)
     
    ResultOk< void > Erase (const Entry &entry, Bool deleteEntry=true)
     
    ResultOk< void > Erase (Entry &entry, Bool deleteEntry=true)
     
    ResultOk< BoolErase (const KEY &key)
     
    IteratorTemplate< SUPER > Erase (const IteratorTemplate< SUPER > &it, Bool deleteEntry=true)
     
    void DeleteEntry (const Entry *e)
     
    Result< void > IntersectImpl (SET &&set, OverloadRank0)
     
    Result< void > CopyFromImpl (HASHMAP &&other, COLLECTION_RESIZE_FLAGS resizeFlags, OverloadRank1)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Result< void > CopyFromImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, OverloadRank0)
     
    SFINAEHelper< Result< void >, typename std::remove_reference< S >::type::MapType >::type AppendAllImpl (S &&src, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank1)
     
    Result< void > AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0)
     
    MultiEntryIterator< false > FindAll (const JNIEnv * &key)
     
    MultiEntryIterator< true > FindAll (const JNIEnv * &key) const
     
    KeyIterator GetKeys ()
     
    ConstKeyIterator GetKeys () const
     
    ValueIterator GetValues ()
     
    ConstValueIterator GetValues () const
     
    Iterator Begin ()
     
    ConstIterator Begin () const
     
    Iterator End ()
     
    ConstIterator End () const
     
    Iterator GetIterator (const Entry *e)
     
    ConstIterator GetIterator (const Entry *e) const
     
    SFINAEHelper< String, JavaClassArray >::type ToString (const FormatStatement *formatStatement=nullptr) const
     
    const Entry * FindEntryImpl (HashValueType hash, const KEY &key) const
     
    Entry * FindEntryImpl (HashValueType hash, const KEY &key)
     
    - Public Member Functions inherited from MapBase< HashMap< JNIEnv *, JavaClassArray, DefaultCompare, HashMapKeyValuePair, DefaultAllocator, HASHMAP_MODE::DEFAULT, 16,(HASHMAP_MODE::DEFAULT==HASHMAP_MODE::SYNCHRONIZED) ? 0 :10, DefaultAllocator >, JNIEnv *, JavaClassArray, EmptyClass, DefaultCompare >
    MAXON_ATTRIBUTE_FORCE_INLINE MapBase (ARGS &&... args)
     
    MapImpl< HashMap< JNIEnv *, JavaClassArray, DefaultCompare, HashMapKeyValuePair, DefaultAllocator, HASHMAP_MODE::DEFAULT, 16,(HASHMAP_MODE::DEFAULT==HASHMAP_MODE::SYNCHRONIZED) ? 0 :10, DefaultAllocator > & > ToMap ()
     
    MapImpl< const HashMap< JNIEnv *, JavaClassArray, DefaultCompare, HashMapKeyValuePair, DefaultAllocator, HASHMAP_MODE::DEFAULT, 16,(HASHMAP_MODE::DEFAULT==HASHMAP_MODE::SYNCHRONIZED) ? 0 :10, DefaultAllocator > & > ToMap () const
     
    MAXON_ATTRIBUTE_FORCE_INLINE operator MapImpl< HashMap< JNIEnv *, JavaClassArray, DefaultCompare, HashMapKeyValuePair, DefaultAllocator, HASHMAP_MODE::DEFAULT, 16,(HASHMAP_MODE::DEFAULT==HASHMAP_MODE::SYNCHRONIZED) ? 0 :10, DefaultAllocator > & > ()
     
    MAXON_ATTRIBUTE_FORCE_INLINE operator MapImpl< const HashMap< JNIEnv *, JavaClassArray, DefaultCompare, HashMapKeyValuePair, DefaultAllocator, HASHMAP_MODE::DEFAULT, 16,(HASHMAP_MODE::DEFAULT==HASHMAP_MODE::SYNCHRONIZED) ? 0 :10, DefaultAllocator > & > () const
     
    - Public Member Functions inherited from MapBase0< COLLECTION, KEYTYPE, VALUETYPE, SUPER, HASH >
    template<typename... ARGS>
    MAXON_ATTRIBUTE_FORCE_INLINE MapBase0 (ARGS &&... args)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Bool Contains (typename ByValueParam< KEYTYPE >::type key) const
     
    template<typename PAIR >
    MAXON_ATTRIBUTE_FORCE_INLINE SFINAEHelper< Bool, typename PAIR::KeyType >::type Contains (const PAIR &pair) const
     
    ResultRef< VALUETYPE > Append (const KEYTYPE &key)
     
    template<typename PAIR >
    SFINAEHelper< ResultRef< VALUETYPE >, typename PAIR::KeyType >::type Append (const PAIR &pair)
     
    template<typename COLLECTION2 >
    Result< void > Add (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
     
    template<typename COLLECTION2 >
    Result< void > AppendAll (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
     
    template<typename COLLECTION2 >
    Result< void > AppendAllInverse (COLLECTION2 &&other)
     
    template<typename COLLECTION2 >
    Bool ContainsAllImpl (COLLECTION2 &&other, OverloadRank0) const
     
    template<typename COLLECTION2 >
    Result< void > SubtractImpl (COLLECTION2 &&other, OverloadRank0)
     
    template<typename COLLECTION2 , typename COMPARE >
    Bool IsEqualImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0) const
     
    HashInt GetHashCode () const
     
    UniqueHash GetUniqueHashCode () const
     
    - Public Member Functions inherited from BaseCollection< COLLECTION, SUPER >
    template<typename... ARGS>
    MAXON_ATTRIBUTE_FORCE_INLINE BaseCollection (ARGS &&... args)
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type operator== (const COLLECTION2 &other) const
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type operator!= (const COLLECTION2 &other) const
     
    template<typename COMPARE = EqualityCompare, typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value &&!STD_IS_REPLACEMENT(same, typename std::decay< COMPARE >::type, EQUALITY), Bool >::type IsEqual (const COLLECTION2 &other, COMPARE &&cmp=COMPARE()) const
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE Result< void > AppendAll (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE Result< void > CopyFrom (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE)
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE Result< void > Subtract (COLLECTION2 &&other)
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE Result< void > Intersect (const COLLECTION2 &other)
     
    template<typename COLLECTION2 >
    Bool Intersects (const COLLECTION2 &other) const
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE Result< void > CopyFromImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, OverloadRank0)
     
    template<typename COLLECTION2 >
    Result< void > AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0)
     
    template<typename COLLECTION2 >
    Result< void > IntersectImpl (COLLECTION2 &&other, OverloadRank0)
     
    MAXON_ATTRIBUTE_FORCE_INLINE Bool IsEmpty () const
     
    MAXON_ATTRIBUTE_FORCE_INLINE Bool IsPopulated () const
     
    String ToString (const FormatStatement *formatStatement=nullptr) const
     
    template<typename COLLECTION2 >
    MAXON_ATTRIBUTE_FORCE_INLINE Bool ContainsAll (COLLECTION2 &&other) const
     
    template<typename COLLECTION2 >
    Bool ContainsAllImpl (COLLECTION2 &&other, OverloadRank0) const
     

    Private Attributes

    Spinlock _lock
     

    Additional Inherited Members

    - Public Types inherited from HashMap< JNIEnv *, JavaClassArray >
    using Super = MapBase< HashMap, JNIEnv *, JavaClassArray, EmptyClass, DefaultCompare >
     
    using HashType = DefaultCompare
     
    using EntryBase = HashMapEntryBase< JNIEnv *, JavaClassArray, HashMapKeyValuePair >
     
    using HashValueType = typename ENTRY_HANDLER::HashValueType
     
    using IsHashMap = std::true_type
     
    using Iterator = IteratorTemplate< EntryIteratorBase >
     
    using ConstIterator = ConstIteratorTemplate< EntryIteratorBase >
     
    using KeyIterator = IteratorTemplate< KeyIteratorBase >
     
    using ConstKeyIterator = ConstIteratorTemplate< KeyIteratorBase >
     
    using ValueIterator = IteratorTemplate< ValueIteratorBase >
     
    using ConstValueIterator = ConstIteratorTemplate< ValueIteratorBase >
     
    - Public Types inherited from MapBase0< COLLECTION, KEYTYPE, VALUETYPE, SUPER, HASH >
    using MapType = COLLECTION
     
    using Super = BaseCollection< COLLECTION, SUPER >
     
    using KeyType = KEYTYPE
     
    using ValueType = VALUETYPE
     
    - Public Types inherited from BaseCollection< COLLECTION, SUPER >
    using IsCollection = std::true_type
     
    using IsBaseArray = std::false_type
     
    - Static Public Member Functions inherited from HashMap< JNIEnv *, JavaClassArray >
    static const Entry * GetEntry (const JavaClassArray *value)
     
    static Entry * GetEntry (typename std::remove_const< JavaClassArray >::type *value)
     
    - Static Public Member Functions inherited from MapBase0< COLLECTION, KEYTYPE, VALUETYPE, SUPER, HASH >
    static const KEYTYPE & GetMapKey (const KEYTYPE &key)
     
    template<typename PAIR >
    static const KEYTYPE & GetMapKey (const PAIR &pair)
     
    - Static Public Attributes inherited from MapBase0< COLLECTION, KEYTYPE, VALUETYPE, SUPER, HASH >
    static const COLLECTION_KIND KIND
     
    - Protected Types inherited from HashMap< JNIEnv *, JavaClassArray >
    using Bucket = typename std::conditional< HASHMAP_MODE::DEFAULT==HASHMAP_MODE::DEFAULT, DefaultBucket, SimpleBucket >::type
     
    - Protected Member Functions inherited from HashMap< JNIEnv *, JavaClassArray >
    Bool ResizeTableImpl (Int length)
     
    Entry * AddEntryImpl (Entry *e, Entry *prev, Bool &created, Bool multi, void *)
     
    Entry * AddEntryImpl (Entry *e, Entry *prev, Bool &created, Bool multi, Char *)
     
    void ResetImpl (Bool destructor)
     
    void FlushEntriesImpl ()
     
    const CharGetSignature (void *) const
     
    const CharGetSignature (Char *) const
     
    - Static Protected Member Functions inherited from HashMap< JNIEnv *, JavaClassArray >
    static Entry * LoadRelaxed (AtomicPtr< Entry > &e)
     
    static Entry * LoadRelaxed (Entry *e)
     
    static Entry * LoadAcquire (AtomicPtr< Entry > &e)
     
    static Entry * LoadAcquire (Entry *e)
     
    static void StoreRelaxed (AtomicPtr< Entry > &e, Entry *newValue)
     
    static void StoreRelaxed (Entry *&e, Entry *newValue)
     
    static Bool TryCompareAndSwap (AtomicPtr< Entry > &e, Entry *newValue, Entry *compare)
     
    static Bool TryCompareAndSwap (Entry *&e, Entry *newValue, Entry *compare)
     
    - Protected Attributes inherited from HashMap< JNIEnv *, JavaClassArray >
    HashMapAllocator< DefaultAllocator, DefaultAllocator_allocator
     
    Bucket_table
     
    Int _tableLengthM1
     
    Bucket ** _nonemptyBuckets
     
    Int _nonemptyBucketCount
     
    Int _size
     
    Int _resizeThreshold
     

    Member Function Documentation

    ◆ GetClassArray()

    JavaClassArray* GetClassArray ( JNIEnv env)

    Member Data Documentation

    ◆ _lock

    Spinlock _lock
    private