Blender V4.3
mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn > Class Template Reference

#include <mikk_atomic_hash_set.hh>

Classes

struct  Config
 

Public Member Functions

 AtomicHashSet (size_t maxSize, KeyHash hasher=KeyHash(), KeyEqual equalityChecker=KeyEqual(), const Config &c=Config())
 
 AtomicHashSet (const AtomicHashSet &)=delete
 
AtomicHashSetoperator= (const AtomicHashSet &)=delete
 
 ~AtomicHashSet ()=default
 
bool tryUpdateCell (KeyT *cell, KeyT &existingKey, KeyT newKey)
 
bool tryUpdateCell (std::atomic< KeyT > *cell, KeyT &existingKey, KeyT newKey)
 
std::pair< KeyT, bool > emplace (KeyT key)
 

Public Attributes

const size_t capacity_
 
const KeyT kEmptyKey_
 
KeyHash hasher_
 
KeyEqual equalityChecker_
 

Detailed Description

template<class KeyT, bool isAtomic, class KeyHash = std::hash<KeyT>, class KeyEqual = std::equal_to<KeyT>, class ProbeFcn = AtomicHashSetLinearProbeFcn>
class mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn >

Definition at line 59 of file mikk_atomic_hash_set.hh.

Constructor & Destructor Documentation

◆ AtomicHashSet() [1/2]

template<class KeyT , bool isAtomic, class KeyHash = std::hash<KeyT>, class KeyEqual = std::equal_to<KeyT>, class ProbeFcn = AtomicHashSetLinearProbeFcn>
mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn >::AtomicHashSet ( size_t maxSize,
KeyHash hasher = KeyHash(),
KeyEqual equalityChecker = KeyEqual(),
const Config & c = Config() )
inline

◆ AtomicHashSet() [2/2]

template<class KeyT , bool isAtomic, class KeyHash = std::hash<KeyT>, class KeyEqual = std::equal_to<KeyT>, class ProbeFcn = AtomicHashSetLinearProbeFcn>
mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn >::AtomicHashSet ( const AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn > & )
delete

◆ ~AtomicHashSet()

template<class KeyT , bool isAtomic, class KeyHash = std::hash<KeyT>, class KeyEqual = std::equal_to<KeyT>, class ProbeFcn = AtomicHashSetLinearProbeFcn>
mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn >::~AtomicHashSet ( )
default

Member Function Documentation

◆ emplace()

template<class KeyT , bool isAtomic, class KeyHash = std::hash<KeyT>, class KeyEqual = std::equal_to<KeyT>, class ProbeFcn = AtomicHashSetLinearProbeFcn>
std::pair< KeyT, bool > mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn >::emplace ( KeyT key)
inline

◆ operator=()

template<class KeyT , bool isAtomic, class KeyHash = std::hash<KeyT>, class KeyEqual = std::equal_to<KeyT>, class ProbeFcn = AtomicHashSetLinearProbeFcn>
AtomicHashSet & mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn >::operator= ( const AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn > & )
delete

◆ tryUpdateCell() [1/2]

template<class KeyT , bool isAtomic, class KeyHash = std::hash<KeyT>, class KeyEqual = std::equal_to<KeyT>, class ProbeFcn = AtomicHashSetLinearProbeFcn>
bool mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn >::tryUpdateCell ( KeyT * cell,
KeyT & existingKey,
KeyT newKey )
inline

◆ tryUpdateCell() [2/2]

template<class KeyT , bool isAtomic, class KeyHash = std::hash<KeyT>, class KeyEqual = std::equal_to<KeyT>, class ProbeFcn = AtomicHashSetLinearProbeFcn>
bool mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn >::tryUpdateCell ( std::atomic< KeyT > * cell,
KeyT & existingKey,
KeyT newKey )
inline

Definition at line 138 of file mikk_atomic_hash_set.hh.

Member Data Documentation

◆ capacity_

template<class KeyT , bool isAtomic, class KeyHash = std::hash<KeyT>, class KeyEqual = std::equal_to<KeyT>, class ProbeFcn = AtomicHashSetLinearProbeFcn>
const size_t mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn >::capacity_

◆ equalityChecker_

template<class KeyT , bool isAtomic, class KeyHash = std::hash<KeyT>, class KeyEqual = std::equal_to<KeyT>, class ProbeFcn = AtomicHashSetLinearProbeFcn>
KeyEqual mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn >::equalityChecker_

◆ hasher_

template<class KeyT , bool isAtomic, class KeyHash = std::hash<KeyT>, class KeyEqual = std::equal_to<KeyT>, class ProbeFcn = AtomicHashSetLinearProbeFcn>
KeyHash mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn >::hasher_

Definition at line 71 of file mikk_atomic_hash_set.hh.

◆ kEmptyKey_

template<class KeyT , bool isAtomic, class KeyHash = std::hash<KeyT>, class KeyEqual = std::equal_to<KeyT>, class ProbeFcn = AtomicHashSetLinearProbeFcn>
const KeyT mikk::AtomicHashSet< KeyT, isAtomic, KeyHash, KeyEqual, ProbeFcn >::kEmptyKey_

The documentation for this class was generated from the following file: