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