Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
#include <_concurrent_skip_list_impl.h>
Classes | |
class | const_range_type |
struct | not_greater_compare |
class | range_type |
Public Member Functions | |
concurrent_skip_list () | |
concurrent_skip_list (const key_compare &comp, const allocator_type &alloc=allocator_type()) | |
template<class InputIt > | |
concurrent_skip_list (InputIt first, InputIt last, const key_compare &comp=key_compare(), const allocator_type &alloc=allocator_type()) | |
concurrent_skip_list (const concurrent_skip_list &other) | |
concurrent_skip_list (const concurrent_skip_list &other, const allocator_type &alloc) | |
concurrent_skip_list (concurrent_skip_list &&other) | |
concurrent_skip_list (concurrent_skip_list &&other, const allocator_type &alloc) | |
~concurrent_skip_list () | |
concurrent_skip_list & | operator= (const concurrent_skip_list &other) |
concurrent_skip_list & | operator= (concurrent_skip_list &&other) |
concurrent_skip_list & | operator= (std::initializer_list< value_type > il) |
std::pair< iterator, bool > | insert (const value_type &value) |
std::pair< iterator, bool > | insert (value_type &&value) |
iterator | insert (const_iterator, const_reference value) |
iterator | insert (const_iterator, value_type &&value) |
template<typename InputIterator > | |
void | insert (InputIterator first, InputIterator last) |
void | insert (std::initializer_list< value_type > init) |
std::pair< iterator, bool > | insert (node_type &&nh) |
iterator | insert (const_iterator, node_type &&nh) |
template<typename... Args> | |
std::pair< iterator, bool > | emplace (Args &&... args) |
template<typename... Args> | |
iterator | emplace_hint (const_iterator, Args &&... args) |
iterator | unsafe_erase (iterator pos) |
iterator | unsafe_erase (const_iterator pos) |
template<typename K , typename = tbb::internal::is_transparent<key_compare, K>, typename = typename std::enable_if<!std::is_convertible<K, iterator>::value && !std::is_convertible<K, const_iterator>::value>::type> | |
size_type | unsafe_erase (const K &key) |
iterator | unsafe_erase (const_iterator first, const_iterator last) |
size_type | unsafe_erase (const key_type &key) |
node_type | unsafe_extract (const_iterator pos) |
node_type | unsafe_extract (const key_type &key) |
iterator | lower_bound (const key_type &key) |
const_iterator | lower_bound (const key_type &key) const |
template<typename K , typename = typename tbb::internal::is_transparent<key_compare, K>> | |
iterator | lower_bound (const K &key) |
template<typename K , typename = typename tbb::internal::is_transparent<key_compare, K>> | |
const_iterator | lower_bound (const K &key) const |
iterator | upper_bound (const key_type &key) |
const_iterator | upper_bound (const key_type &key) const |
template<typename K , typename = typename tbb::internal::is_transparent<key_compare, K>> | |
iterator | upper_bound (const K &key) |
template<typename K , typename = typename tbb::internal::is_transparent<key_compare, K>> | |
const_iterator | upper_bound (const K &key) const |
iterator | find (const key_type &key) |
const_iterator | find (const key_type &key) const |
template<typename K , typename = typename tbb::internal::is_transparent<key_compare, K>> | |
iterator | find (const K &key) |
template<typename K , typename = typename tbb::internal::is_transparent<key_compare, K>> | |
const_iterator | find (const K &key) const |
size_type | count (const key_type &key) const |
template<typename K , typename = typename tbb::internal::is_transparent<key_compare, K>> | |
size_type | count (const K &key) const |
bool | contains (const key_type &key) const |
template<typename K , typename = typename tbb::internal::is_transparent<key_compare, K>> | |
bool | contains (const K &key) const |
void | clear () noexcept |
iterator | begin () |
const_iterator | begin () const |
const_iterator | cbegin () const |
iterator | end () |
const_iterator | end () const |
const_iterator | cend () const |
size_type | size () const |
size_type | max_size () const |
bool | empty () const |
allocator_type | get_allocator () const |
void | swap (concurrent_skip_list &other) |
std::pair< iterator, iterator > | equal_range (const key_type &key) |
std::pair< const_iterator, const_iterator > | equal_range (const key_type &key) const |
template<typename K , typename = typename tbb::internal::is_transparent<key_compare, K>> | |
std::pair< iterator, iterator > | equal_range (const K &key) |
template<typename K , typename = typename tbb::internal::is_transparent<key_compare, K>> | |
std::pair< const_iterator, const_iterator > | equal_range (const K &key) const |
key_compare | key_comp () const |
value_compare | value_comp () const |
range_type | range () |
const_range_type | range () const |
Static Public Attributes | |
static bool const | allow_multimapping = traits_type::allow_multimapping |
Protected Types | |
using | traits_type = Traits |
using | allocator_type = typename traits_type::allocator_type |
using | allocator_traits_type = std::allocator_traits< allocator_type > |
using | key_compare = typename traits_type::compare_type |
using | value_compare = typename traits_type::value_compare |
using | key_type = typename traits_type::key_type |
using | value_type = typename traits_type::value_type |
using | node_type = typename traits_type::node_type |
using | list_node_type = skip_list_node< value_type, typename traits_type::mutex_type > |
using | iterator = skip_list_iterator< list_node_type, false > |
using | const_iterator = skip_list_iterator< list_node_type, true > |
using | reverse_iterator = std::reverse_iterator< iterator > |
using | const_reverse_iterator = std::reverse_iterator< const_iterator > |
using | reference = value_type & |
using | const_reference = const value_type & |
using | pointer = typename allocator_traits_type::pointer |
using | const_pointer = typename allocator_traits_type::const_pointer |
using | size_type = std::size_t |
using | difference_type = std::ptrdiff_t |
using | random_level_generator_type = typename traits_type::random_level_generator_type |
using | node_allocator_type = typename std::allocator_traits< allocator_type >::template rebind_alloc< uint8_t > |
using | node_allocator_traits = typename std::allocator_traits< allocator_type >::template rebind_traits< uint8_t > |
using | node_ptr = list_node_type * |
using | array_type = std::array< node_ptr, MAX_LEVEL > |
using | lock_array = std::array< typename list_node_type::lock_type, MAX_LEVEL > |
Protected Member Functions | |
template<typename SourceType > | |
void | internal_merge (SourceType &&source) |
Static Protected Attributes | |
static constexpr size_type | MAX_LEVEL = traits_type::MAX_LEVEL |
Private Member Functions | |
void | internal_move (concurrent_skip_list &&other) |
template<typename K > | |
iterator | internal_find (const K &key) |
template<typename K > | |
const_iterator | internal_find (const K &key) const |
template<typename K > | |
size_type | internal_count (const K &key) const |
template<typename K , typename pointer_type , typename comparator > | |
pointer_type | internal_find_position (size_type level, pointer_type &prev, const K &key, const comparator &cmp) const |
template<typename comparator > | |
void | fill_prev_next_arrays (array_type &prev_nodes, array_type &next_nodes, node_ptr prev, const key_type &key, const comparator &cmp) |
template<typename comparator > | |
void | fill_prev_next_by_ptr (array_type &prev_nodes, array_type &next_nodes, const_iterator it, const key_type &key, const comparator &cmp) |
template<typename... Args> | |
std::pair< iterator, bool > | internal_insert (Args &&... args) |
std::pair< iterator, bool > | internal_insert_node (node_ptr new_node) |
bool | try_insert_node (node_ptr new_node, array_type &prev_nodes, array_type &next_nodes) |
bool | try_lock_nodes (size_type height, array_type &prevs, array_type &next_nodes, lock_array &locks) |
template<typename K , typename comparator > | |
const_iterator | internal_get_bound (const K &key, const comparator &cmp) const |
template<typename K , typename comparator > | |
iterator | internal_get_bound (const K &key, const comparator &cmp) |
std::pair< node_ptr, node_ptr > | internal_extract (const_iterator it) |
void | internal_copy (const concurrent_skip_list &other) |
template<typename Iterator > | |
void | internal_copy (Iterator first, Iterator last) |
size_type | random_level () |
template<typename... Args> | |
node_ptr | create_node (Args &&... args) |
void | create_dummy_head () |
template<bool is_dummy = false> | |
void | delete_node (node_ptr node) |
void | deallocate_node (node_ptr node, size_type sz) |
void | delete_dummy_head () |
void | internal_move_assign (concurrent_skip_list &&other, std::true_type) |
void | internal_move_assign (concurrent_skip_list &&other, std::false_type) |
Static Private Member Functions | |
static const key_type & | get_key (node_ptr n) |
static size_type | calc_node_size (size_type height) |
static iterator | get_iterator (const_iterator it) |
Private Attributes | |
node_allocator_type | my_node_allocator |
key_compare | my_compare |
random_level_generator_type | my_rnd_generator |
node_ptr | dummy_head |
std::atomic< size_type > | my_size |
Friends | |
template<typename OtherTraits > | |
class | concurrent_skip_list |
Definition at line 220 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 224 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 223 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 251 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 233 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 240 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 238 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 235 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 242 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 232 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 225 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 227 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 230 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 252 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 246 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 245 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 247 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 229 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 239 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 244 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 237 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 234 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 241 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 222 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 226 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 228 of file _concurrent_skip_list_impl.h.
|
inline |
Default constructor. Construct empty skip list.
Definition at line 260 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head().
|
inlineexplicit |
Definition at line 264 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head().
|
inline |
Definition at line 271 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head(), tbb::internal::first(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_copy(), and tbb::internal::last().
|
inline |
Copy constructor
Definition at line 280 of file _concurrent_skip_list_impl.h.
References __TBB_ASSERT, tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_copy(), and tbb::interface10::internal::concurrent_skip_list< Traits >::my_size.
|
inline |
Definition at line 289 of file _concurrent_skip_list_impl.h.
References __TBB_ASSERT, tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_copy(), and tbb::interface10::internal::concurrent_skip_list< Traits >::my_size.
|
inline |
Definition at line 298 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_move(), and tbb::move().
|
inline |
Definition at line 305 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_copy(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_move(), tbb::move(), and tbb::interface10::internal::concurrent_skip_list< Traits >::my_size.
|
inline |
Definition at line 318 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::clear(), and tbb::interface10::internal::concurrent_skip_list< Traits >::delete_dummy_head().
|
inline |
Definition at line 543 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, and tbb::interface10::internal::skip_list_node< Value, Mutex >::next().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_copy().
|
inline |
Definition at line 547 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, and tbb::interface10::internal::skip_list_node< Value, Mutex >::next().
|
inlinestaticprivate |
Definition at line 955 of file _concurrent_skip_list_impl.h.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head(), tbb::interface10::internal::concurrent_skip_list< Traits >::create_node(), and tbb::interface10::internal::concurrent_skip_list< Traits >::delete_node().
|
inline |
Definition at line 551 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, and tbb::interface10::internal::skip_list_node< Value, Mutex >::next().
|
inline |
Definition at line 563 of file _concurrent_skip_list_impl.h.
|
inlinenoexcept |
Definition at line 526 of file _concurrent_skip_list_impl.h.
References __TBB_ASSERT, tbb::interface10::internal::concurrent_skip_list< Traits >::delete_node(), tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, tbb::interface10::internal::skip_list_node< Value, Mutex >::height(), tbb::interface10::internal::concurrent_skip_list< Traits >::my_size, tbb::interface10::internal::skip_list_node< Value, Mutex >::next(), and tbb::interface10::internal::skip_list_node< Value, Mutex >::set_next().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_copy(), tbb::interface10::internal::concurrent_skip_list< Traits >::operator=(), and tbb::interface10::internal::concurrent_skip_list< Traits >::~concurrent_skip_list().
|
inline |
Definition at line 517 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::end(), tbb::interface10::internal::concurrent_skip_list< Traits >::find(), and key.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_merge().
|
inline |
Definition at line 522 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::end(), tbb::interface10::internal::concurrent_skip_list< Traits >::find(), and key.
|
inline |
Definition at line 508 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_count(), and key.
|
inline |
Definition at line 513 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_count(), and key.
|
inlineprivate |
Definition at line 989 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::calc_node_size(), tbb::interface10::internal::concurrent_skip_list< Traits >::deallocate_node(), tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, tbb::interface10::internal::concurrent_skip_list< Traits >::MAX_LEVEL, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_node_allocator.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::concurrent_skip_list().
|
inlineprivate |
Creates new node
Definition at line 961 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::calc_node_size(), tbb::interface10::internal::concurrent_skip_list< Traits >::deallocate_node(), tbb::interface10::internal::concurrent_skip_list< Traits >::my_node_allocator, tbb::interface10::internal::concurrent_skip_list< Traits >::random_level(), and tbb::interface10::internal::skip_list_node< Value, Mutex >::storage().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert().
|
inlineprivate |
Definition at line 1016 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::my_node_allocator.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head(), tbb::interface10::internal::concurrent_skip_list< Traits >::create_node(), and tbb::interface10::internal::concurrent_skip_list< Traits >::delete_node().
|
inlineprivate |
Definition at line 1020 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_copy(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_move_assign(), and tbb::interface10::internal::concurrent_skip_list< Traits >::~concurrent_skip_list().
|
inlineprivate |
Definition at line 1006 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::calc_node_size(), tbb::interface10::internal::concurrent_skip_list< Traits >::deallocate_node(), tbb::interface10::internal::skip_list_node< Value, Mutex >::height(), tbb::interface10::internal::concurrent_skip_list< Traits >::my_node_allocator, and tbb::interface10::internal::skip_list_node< Value, Mutex >::storage().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::clear(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert(), and tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_erase().
|
inline |
Definition at line 398 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::emplace_hint().
|
inline |
Definition at line 403 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::emplace().
|
inline |
Definition at line 575 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::size().
|
inline |
Definition at line 555 of file _concurrent_skip_list_impl.h.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::contains(), tbb::interface10::internal::concurrent_skip_list< Traits >::insert(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_copy(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_count(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_extract(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find(), and tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_erase().
|
inline |
Definition at line 559 of file _concurrent_skip_list_impl.h.
|
inline |
Definition at line 596 of file _concurrent_skip_list_impl.h.
References key, tbb::interface10::internal::concurrent_skip_list< Traits >::lower_bound(), and tbb::interface10::internal::concurrent_skip_list< Traits >::upper_bound().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_count(), and tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_erase().
|
inline |
Definition at line 600 of file _concurrent_skip_list_impl.h.
References key, tbb::interface10::internal::concurrent_skip_list< Traits >::lower_bound(), and tbb::interface10::internal::concurrent_skip_list< Traits >::upper_bound().
|
inline |
Definition at line 605 of file _concurrent_skip_list_impl.h.
References key, tbb::interface10::internal::concurrent_skip_list< Traits >::lower_bound(), and tbb::interface10::internal::concurrent_skip_list< Traits >::upper_bound().
|
inline |
Definition at line 610 of file _concurrent_skip_list_impl.h.
References key, tbb::interface10::internal::concurrent_skip_list< Traits >::lower_bound(), and tbb::interface10::internal::concurrent_skip_list< Traits >::upper_bound().
|
inlineprivate |
Definition at line 737 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, h, tbb::interface10::internal::skip_list_node< Value, Mutex >::height(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find_position(), and key.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert_node().
|
inlineprivate |
Definition at line 750 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, h, tbb::interface10::internal::skip_list_node< Value, Mutex >::height(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find_position(), key, tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::my_node_ptr, and tbb::interface10::internal::skip_list_node< Value, Mutex >::next().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_extract().
|
inline |
Definition at line 490 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find(), and key.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::contains(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_count(), and tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_extract().
|
inline |
Definition at line 494 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find(), and key.
|
inline |
Definition at line 499 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find(), and key.
|
inline |
Definition at line 504 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find(), and key.
|
inline |
Definition at line 579 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::my_node_allocator.
|
inlinestaticprivate |
Definition at line 1024 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::my_node_ptr.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_erase().
|
inlinestaticprivate |
Definition at line 686 of file _concurrent_skip_list_impl.h.
References __TBB_ASSERT, and tbb::interface10::internal::skip_list_node< Value, Mutex >::value().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_extract(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find_position(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert_node(), and tbb::interface10::internal::concurrent_skip_list< Traits >::try_insert_node().
|
inline |
Definition at line 353 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert(), and value.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::insert(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_copy(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_merge(), and tbb::interface10::internal::concurrent_skip_list< Traits >::operator=().
|
inline |
Definition at line 357 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert(), tbb::move(), and value.
|
inline |
Definition at line 361 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::insert(), and value.
|
inline |
Definition at line 366 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::insert(), tbb::move(), and value.
|
inline |
Definition at line 372 of file _concurrent_skip_list_impl.h.
References tbb::internal::first(), tbb::interface10::internal::concurrent_skip_list< Traits >::insert(), and tbb::internal::last().
|
inline |
Definition at line 377 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::insert().
|
inline |
Definition at line 381 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::end(), and tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert_node().
|
inline |
Definition at line 392 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::insert(), and tbb::move().
|
inlineprivate |
Definition at line 932 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::begin(), and tbb::interface10::internal::concurrent_skip_list< Traits >::end().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::concurrent_skip_list(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_move_assign(), and tbb::interface10::internal::concurrent_skip_list< Traits >::operator=().
|
inlineprivate |
Definition at line 937 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::clear(), tbb::interface10::internal::concurrent_skip_list< Traits >::delete_dummy_head(), tbb::internal::first(), tbb::interface10::internal::concurrent_skip_list< Traits >::insert(), and tbb::internal::last().
|
inlineprivate |
Definition at line 704 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::allow_multimapping, tbb::interface10::internal::concurrent_skip_list< Traits >::end(), tbb::interface10::internal::concurrent_skip_list< Traits >::equal_range(), tbb::interface10::internal::concurrent_skip_list< Traits >::find(), key, and tbb::interface10::internal::concurrent_skip_list< Traits >::range().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::count().
|
inlineprivate |
Definition at line 880 of file _concurrent_skip_list_impl.h.
References __TBB_ASSERT, tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, tbb::interface10::internal::concurrent_skip_list< Traits >::end(), tbb::interface10::internal::concurrent_skip_list< Traits >::fill_prev_next_by_ptr(), tbb::interface10::internal::concurrent_skip_list< Traits >::get_key(), tbb::interface10::internal::skip_list_node< Value, Mutex >::height(), key, tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare, tbb::interface10::internal::concurrent_skip_list< Traits >::my_size, and tbb::interface10::internal::skip_list_node< Value, Mutex >::next().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_erase(), and tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_extract().
|
inlineprivate |
Definition at line 692 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::end(), key, tbb::interface10::internal::concurrent_skip_list< Traits >::lower_bound(), and tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::find().
|
inlineprivate |
Definition at line 698 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::end(), key, tbb::interface10::internal::concurrent_skip_list< Traits >::lower_bound(), and tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
|
inlineprivate |
Finds position on the
level | using |
cmp | |
level | - on which level search prev node |
prev | - pointer to the start node to search |
key | - key to search |
cmp | - callable object to compare two objects (my_compare member is default comparator) |
key |
Definition at line 722 of file _concurrent_skip_list_impl.h.
References __TBB_ASSERT, tbb::interface10::internal::concurrent_skip_list< Traits >::get_key(), and key.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::fill_prev_next_arrays(), tbb::interface10::internal::concurrent_skip_list< Traits >::fill_prev_next_by_ptr(), and tbb::interface10::internal::concurrent_skip_list< Traits >::internal_get_bound().
|
inlineprivate |
Definition at line 854 of file _concurrent_skip_list_impl.h.
References __TBB_ASSERT, tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, h, tbb::interface10::internal::skip_list_node< Value, Mutex >::height(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find_position(), and key.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::lower_bound(), and tbb::interface10::internal::concurrent_skip_list< Traits >::upper_bound().
|
inlineprivate |
Definition at line 867 of file _concurrent_skip_list_impl.h.
References __TBB_ASSERT, tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, h, tbb::interface10::internal::skip_list_node< Value, Mutex >::height(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find_position(), and key.
|
inlineprivate |
Definition at line 773 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::create_node(), tbb::interface10::internal::concurrent_skip_list< Traits >::delete_node(), and tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert_node().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::emplace(), and tbb::interface10::internal::concurrent_skip_list< Traits >::insert().
|
inlineprivate |
Definition at line 782 of file _concurrent_skip_list_impl.h.
References __TBB_ASSERT, tbb::interface10::internal::concurrent_skip_list< Traits >::allow_multimapping, tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, tbb::interface10::internal::concurrent_skip_list< Traits >::fill_prev_next_arrays(), tbb::interface10::internal::skip_list_node< Value, Mutex >::fully_linked(), tbb::interface10::internal::concurrent_skip_list< Traits >::get_key(), tbb::interface10::internal::skip_list_node< Value, Mutex >::height(), tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare, and tbb::interface10::internal::concurrent_skip_list< Traits >::try_insert_node().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::insert(), and tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert().
|
inlineprotected |
Definition at line 909 of file _concurrent_skip_list_impl.h.
References __TBB_ASSERT, __TBB_STATIC_ASSERT, tbb::interface10::internal::concurrent_skip_list< Traits >::allow_multimapping, tbb::interface10::internal::concurrent_skip_list< Traits >::contains(), tbb::interface10::internal::concurrent_skip_list< Traits >::insert(), tbb::move(), type, and value.
|
inlineprivate |
Definition at line 677 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_size.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::concurrent_skip_list(), and tbb::interface10::internal::concurrent_skip_list< Traits >::internal_move_assign().
|
inlineprivate |
Definition at line 1028 of file _concurrent_skip_list_impl.h.
References tbb::internal::allocator_move_assignment(), tbb::interface10::internal::concurrent_skip_list< Traits >::delete_dummy_head(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_move(), tbb::move(), and tbb::interface10::internal::concurrent_skip_list< Traits >::my_node_allocator.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::operator=().
|
inlineprivate |
Definition at line 1034 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::delete_dummy_head(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_copy(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_move(), tbb::move(), and tbb::interface10::internal::concurrent_skip_list< Traits >::my_node_allocator.
|
inline |
Definition at line 614 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
|
inline |
Definition at line 454 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_get_bound(), key, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::equal_range(), and tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find().
|
inline |
Definition at line 458 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_get_bound(), key, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
|
inline |
Definition at line 463 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_get_bound(), key, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
|
inline |
Definition at line 468 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_get_bound(), key, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
|
inline |
Definition at line 571 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::my_node_allocator.
|
inline |
Definition at line 323 of file _concurrent_skip_list_impl.h.
References tbb::internal::allocator_copy_assignment(), tbb::interface10::internal::concurrent_skip_list< Traits >::clear(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_copy(), tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare, tbb::interface10::internal::concurrent_skip_list< Traits >::my_node_allocator, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_rnd_generator.
|
inline |
Definition at line 335 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::clear(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_move_assign(), tbb::move(), tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_rnd_generator.
|
inline |
Definition at line 346 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::clear(), and tbb::interface10::internal::concurrent_skip_list< Traits >::insert().
|
inlineprivate |
Generate random level
Definition at line 951 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::my_rnd_generator.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::create_node().
|
inline |
Definition at line 673 of file _concurrent_skip_list_impl.h.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_count(), and tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_erase().
|
inline |
Definition at line 674 of file _concurrent_skip_list_impl.h.
|
inline |
Definition at line 567 of file _concurrent_skip_list_impl.h.
References tbb::internal::memory_order_relaxed, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_size.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::empty().
|
inline |
Definition at line 583 of file _concurrent_skip_list_impl.h.
References tbb::internal::allocator_swap(), tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare, tbb::interface10::internal::concurrent_skip_list< Traits >::my_node_allocator, tbb::interface10::internal::concurrent_skip_list< Traits >::my_rnd_generator, tbb::interface10::internal::concurrent_skip_list< Traits >::my_size, and tbb::internal::swap().
|
inlineprivate |
Definition at line 813 of file _concurrent_skip_list_impl.h.
References __TBB_ASSERT, tbb::interface10::internal::concurrent_skip_list< Traits >::allow_multimapping, tbb::interface10::internal::concurrent_skip_list< Traits >::dummy_head, tbb::interface10::internal::concurrent_skip_list< Traits >::get_key(), tbb::interface10::internal::skip_list_node< Value, Mutex >::height(), tbb::interface10::internal::skip_list_node< Value, Mutex >::mark_linked(), tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare, tbb::interface10::internal::concurrent_skip_list< Traits >::my_size, tbb::interface10::internal::skip_list_node< Value, Mutex >::set_next(), and tbb::interface10::internal::concurrent_skip_list< Traits >::try_lock_nodes().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert_node().
|
inlineprivate |
Definition at line 841 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::skip_list_node< Value, Mutex >::next().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::try_insert_node().
|
inline |
Definition at line 408 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::delete_node(), tbb::interface10::internal::concurrent_skip_list< Traits >::end(), and tbb::interface10::internal::concurrent_skip_list< Traits >::internal_extract().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_erase().
|
inline |
Definition at line 417 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::get_iterator(), and tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_erase().
|
inline |
Definition at line 424 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::equal_range(), key, tbb::interface10::internal::concurrent_skip_list< Traits >::range(), and tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_erase().
|
inline |
Definition at line 431 of file _concurrent_skip_list_impl.h.
References tbb::internal::first(), tbb::interface10::internal::concurrent_skip_list< Traits >::get_iterator(), tbb::internal::last(), and tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_erase().
|
inline |
Definition at line 438 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::equal_range(), key, tbb::interface10::internal::concurrent_skip_list< Traits >::range(), and tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_erase().
|
inline |
Definition at line 445 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_extract().
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_extract().
|
inline |
Definition at line 450 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::find(), key, and tbb::interface10::internal::concurrent_skip_list< Traits >::unsafe_extract().
|
inline |
Definition at line 472 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_get_bound(), key, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::equal_range().
|
inline |
Definition at line 476 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_get_bound(), key, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
|
inline |
Definition at line 481 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_get_bound(), key, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
|
inline |
Definition at line 486 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_get_bound(), key, and tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
|
inline |
Definition at line 616 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
Definition at line 1060 of file _concurrent_skip_list_impl.h.
|
static |
Definition at line 255 of file _concurrent_skip_list_impl.h.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_count(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert_node(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_merge(), and tbb::interface10::internal::concurrent_skip_list< Traits >::try_insert_node().
|
private |
Definition at line 1057 of file _concurrent_skip_list_impl.h.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::begin(), tbb::interface10::internal::concurrent_skip_list< Traits >::cbegin(), tbb::interface10::internal::concurrent_skip_list< Traits >::clear(), tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head(), tbb::interface10::internal::concurrent_skip_list< Traits >::delete_dummy_head(), tbb::interface10::internal::concurrent_skip_list< Traits >::fill_prev_next_arrays(), tbb::interface10::internal::concurrent_skip_list< Traits >::fill_prev_next_by_ptr(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_extract(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_get_bound(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert_node(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_move(), tbb::interface10::internal::concurrent_skip_list< Traits >::swap(), and tbb::interface10::internal::concurrent_skip_list< Traits >::try_insert_node().
|
staticprotected |
Definition at line 249 of file _concurrent_skip_list_impl.h.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head().
|
private |
Definition at line 1055 of file _concurrent_skip_list_impl.h.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::internal_extract(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert_node(), tbb::interface10::internal::concurrent_skip_list< Traits >::key_comp(), tbb::interface10::internal::concurrent_skip_list< Traits >::lower_bound(), tbb::interface10::internal::concurrent_skip_list< Traits >::operator=(), tbb::interface10::internal::concurrent_skip_list< Traits >::swap(), tbb::interface10::internal::concurrent_skip_list< Traits >::try_insert_node(), tbb::interface10::internal::concurrent_skip_list< Traits >::upper_bound(), and tbb::interface10::internal::concurrent_skip_list< Traits >::value_comp().
|
private |
Definition at line 1054 of file _concurrent_skip_list_impl.h.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head(), tbb::interface10::internal::concurrent_skip_list< Traits >::create_node(), tbb::interface10::internal::concurrent_skip_list< Traits >::deallocate_node(), tbb::interface10::internal::concurrent_skip_list< Traits >::delete_node(), tbb::interface10::internal::concurrent_skip_list< Traits >::get_allocator(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_move_assign(), tbb::interface10::internal::concurrent_skip_list< Traits >::max_size(), tbb::interface10::internal::concurrent_skip_list< Traits >::operator=(), and tbb::interface10::internal::concurrent_skip_list< Traits >::swap().
|
private |
|
private |
Definition at line 1062 of file _concurrent_skip_list_impl.h.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::clear(), tbb::interface10::internal::concurrent_skip_list< Traits >::concurrent_skip_list(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_extract(), tbb::interface10::internal::concurrent_skip_list< Traits >::internal_move(), tbb::interface10::internal::concurrent_skip_list< Traits >::size(), tbb::interface10::internal::concurrent_skip_list< Traits >::swap(), and tbb::interface10::internal::concurrent_skip_list< Traits >::try_insert_node().