|
|
| 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.