4 #ifndef PMEMOBJ_CONCURRENT_MAP_HPP
5 #define PMEMOBJ_CONCURRENT_MAP_HPP
8 #include <libpmemobj++/container/detail/concurrent_skip_list_impl.hpp>
9 #include <libpmemobj++/detail/pair.hpp>
15 namespace experimental
43 template <
typename Key,
typename Value,
typename Comp = std::less<Key>,
45 pmem::obj::allocator<detail::pair<const Key, Value>>>
48 Key, Value, Comp, detail::default_random_generator, Allocator,
50 using traits_type = detail::map_traits<Key, Value, Comp,
51 detail::default_random_generator,
52 Allocator,
false, 64>;
56 using key_type =
typename base_type::key_type;
57 using mapped_type =
typename base_type::mapped_type;
58 using value_type =
typename base_type::value_type;
59 using size_type =
typename base_type::size_type;
60 using difference_type =
typename base_type::difference_type;
61 using key_compare = Comp;
62 using allocator_type = Allocator;
63 using reference =
typename base_type::reference;
64 using const_reference =
typename base_type::const_reference;
65 using pointer =
typename base_type::pointer;
66 using const_pointer =
typename base_type::const_pointer;
67 using iterator =
typename base_type::iterator;
68 using const_iterator =
typename base_type::const_iterator;
93 const allocator_type &alloc = allocator_type())
101 template <
class InputIt>
103 const key_compare &comp = Comp(),
104 const allocator_type &alloc = allocator_type())
141 operator=(std::initializer_list<value_type> ilist)
149 template <
typename Key,
typename Value,
typename Comp,
typename Allocator>
Persistent memory aware allocator.
Persistent memory aware implementation of the concurrent skip list.
Definition: concurrent_skip_list_impl.hpp:479
concurrent_skip_list & operator=(const concurrent_skip_list &other)
Copy assignment operator.
Definition: concurrent_skip_list_impl.hpp:796
Persistent memory aware implementation of Intel TBB concurrent_map.
Definition: concurrent_map.hpp:49
concurrent_map(std::initializer_list< value_type > ilist)
Constructs the map with initializer list.
Definition: concurrent_map.hpp:112
concurrent_map & operator=(const concurrent_map &other)
Assignment operator.
Definition: concurrent_map.hpp:121
concurrent_map(concurrent_map &&table)
Move constructor.
Definition: concurrent_map.hpp:85
concurrent_map(const key_compare &comp, const allocator_type &alloc=allocator_type())
Construct the empty map.
Definition: concurrent_map.hpp:92
concurrent_map()=default
Default constructor.
concurrent_map(InputIt first, InputIt last, const key_compare &comp=Comp(), const allocator_type &alloc=allocator_type())
Constructs the map with the contents of the range [first, last).
Definition: concurrent_map.hpp:102
concurrent_map & operator=(concurrent_map &&other)
Move-assignment operator.
Definition: concurrent_map.hpp:131
concurrent_map(const concurrent_map &table)
Copy constructor.
Definition: concurrent_map.hpp:78
void swap(concurrent_map< Key, Value, Comp, Allocator > &lhs, concurrent_map< Key, Value, Comp, Allocator > &rhs)
Non-member swap.
Definition: concurrent_map.hpp:151
pmem::obj::array< T, N >::iterator end(pmem::obj::array< T, N > &a)
Non-member end.
Definition: array.hpp:849
pmem::obj::array< T, N >::iterator begin(pmem::obj::array< T, N > &a)
Non-member begin.
Definition: array.hpp:829
Persistent memory namespace.
Definition: allocation_flag.hpp:15