|
| concurrent_hash_map () |
| Construct empty table.
|
|
| concurrent_hash_map (size_type n) |
| Construct empty table with n preallocated buckets. More...
|
|
| concurrent_hash_map (const concurrent_hash_map &table) |
| Copy constructor.
|
|
| concurrent_hash_map (concurrent_hash_map &&table) |
| Move constructor.
|
|
template<typename I > |
| concurrent_hash_map (I first, I last) |
| Construction table with copying iteration range.
|
|
| concurrent_hash_map (std::initializer_list< value_type > il) |
| Construct table with initializer list.
|
|
void | initialize (bool graceful_shutdown=false) |
| Intialize persistent concurrent hash map after process restart. More...
|
|
concurrent_hash_map & | operator= (const concurrent_hash_map &table) |
| Assignment. More...
|
|
concurrent_hash_map & | operator= (std::initializer_list< value_type > il) |
| Assignment. More...
|
|
void | rehash (size_type n=0) |
| Rehashes and optionally resizes the whole table. More...
|
|
void | clear () |
| Clear hash map content. More...
|
|
| ~concurrent_hash_map () |
| Clear table and destroy it.
|
|
iterator | begin () |
|
iterator | end () |
|
const_iterator | begin () const |
|
const_iterator | end () const |
|
size_type | size () const |
|
bool | empty () const |
|
size_type | max_size () const |
| Upper bound on size.
|
|
size_type | bucket_count () const |
|
void | swap (concurrent_hash_map &table) |
| Swap two instances. More...
|
|
size_type | count (const Key &key) const |
|
template<typename K , typename = typename std::enable_if< internal::has_transparent_key_equal<hasher>::value, K>::type> |
size_type | count (const K &key) const |
| This overload only participates in overload resolution if the qualified-id Hash::transparent_key_equal is valid and denotes a type. More...
|
|
bool | find (const_accessor &result, const Key &key) const |
| Find item and acquire a read lock on the item. More...
|
|
template<typename K , typename = typename std::enable_if< internal::has_transparent_key_equal<hasher>::value, K>::type> |
bool | find (const_accessor &result, const K &key) const |
| Find item and acquire a read lock on the item. More...
|
|
bool | find (accessor &result, const Key &key) |
| Find item and acquire a write lock on the item. More...
|
|
template<typename K , typename = typename std::enable_if< internal::has_transparent_key_equal<hasher>::value, K>::type> |
bool | find (accessor &result, const K &key) |
| Find item and acquire a write lock on the item. More...
|
|
bool | insert (const_accessor &result, const Key &key) |
| Insert item (if not already present) and acquire a read lock on the item. More...
|
|
bool | insert (accessor &result, const Key &key) |
| Insert item (if not already present) and acquire a write lock on the item. More...
|
|
bool | insert (const_accessor &result, const value_type &value) |
| Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
|
|
bool | insert (accessor &result, const value_type &value) |
| Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
|
|
bool | insert (const value_type &value) |
| Insert item by copying if there is no such key present already. More...
|
|
bool | insert (const_accessor &result, value_type &&value) |
| Insert item by copying if there is no such key present already and acquire a read lock on the item. More...
|
|
bool | insert (accessor &result, value_type &&value) |
| Insert item by copying if there is no such key present already and acquire a write lock on the item. More...
|
|
bool | insert (value_type &&value) |
| Insert item by copying if there is no such key present already. More...
|
|
template<typename I > |
void | insert (I first, I last) |
| Insert range [first, last) More...
|
|
void | insert (std::initializer_list< value_type > il) |
| Insert initializer list. More...
|
|
bool | erase (const Key &key) |
| Remove element with corresponding key. More...
|
|
template<typename K , typename = typename std::enable_if< internal::has_transparent_key_equal<hasher>::value, K>::type> |
bool | erase (const K &key) |
| Remove element with corresponding key. More...
|
|
template<typename Key, typename T, typename Hash, typename KeyEqual>
class pmem::obj::experimental::concurrent_hash_map< Key, T, Hash, KeyEqual >
Persistent memory aware implementation of Intel TBB concurrent_hash_map.
template<typename Key , typename T , typename Hash , typename KeyEqual >
template<typename K , typename = typename std::enable_if< internal::has_transparent_key_equal<hasher>::value, K>::type>
This overload only participates in overload resolution if the qualified-id Hash::transparent_key_equal is valid and denotes a type.
This assumes that such Hash is callable with both K and Key type, and that its key_equal is transparent, which, together, allows calling this function without constructing an instance of Key
- Returns
- count of items (0 or 1)
template<typename Key , typename T , typename Hash , typename KeyEqual >
template<typename K , typename = typename std::enable_if< internal::has_transparent_key_equal<hasher>::value, K>::type>
Remove element with corresponding key.
This overload only participates in overload resolution if the qualified-id Hash::transparent_key_equal is valid and denotes a type. This assumes that such Hash is callable with both K and Key type, and that its key_equal is transparent, which, together, allows calling this function without constructing an instance of Key
- Returns
- true if element was deleted by this call
- Exceptions
-
std::runtime_error | in case of PMDK unable to free the memory |
template<typename Key , typename T , typename Hash , typename KeyEqual >
template<typename K , typename = typename std::enable_if< internal::has_transparent_key_equal<hasher>::value, K>::type>
Find item and acquire a write lock on the item.
This overload only participates in overload resolution if the qualified-id Hash::transparent_key_equal is valid and denotes a type. This assumes that such Hash is callable with both K and Key type, and that its key_equal is transparent, which, together, allows calling this function without constructing an instance of Key
- Returns
- true if item is found, false otherwise.
template<typename Key , typename T , typename Hash , typename KeyEqual >
template<typename K , typename = typename std::enable_if< internal::has_transparent_key_equal<hasher>::value, K>::type>
Find item and acquire a read lock on the item.
This overload only participates in overload resolution if the qualified-id Hash::transparent_key_equal is valid and denotes a type. This assumes that such Hash is callable with both K and Key type, and that its key_equal is transparent, which, together, allows calling this function without constructing an instance of Key
- Returns
- true if item is found, false otherwise.