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 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 std::enable_if<tbb::internal::has_is_transparent<key_compare>::value, K>::type> | |
iterator | lower_bound (const K &key) |
template<typename K , typename = typename std::enable_if<tbb::internal::has_is_transparent<key_compare>::value, K>::type> | |
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 std::enable_if<tbb::internal::has_is_transparent<key_compare>::value, K>::type> | |
iterator | upper_bound (const K &key) |
template<typename K , typename = typename std::enable_if<tbb::internal::has_is_transparent<key_compare>::value, K>::type> | |
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 std::enable_if<tbb::internal::has_is_transparent<key_compare>::value, K>::type> | |
iterator | find (const K &key) |
template<typename K , typename = typename std::enable_if<tbb::internal::has_is_transparent<key_compare>::value, K>::type> | |
const_iterator | find (const K &key) const |
size_type | count (const key_type &key) const |
template<typename K , typename = typename std::enable_if<tbb::internal::has_is_transparent<key_compare>::value, K>::type> | |
size_type | count (const K &key) const |
bool | contains (const key_type &key) const |
template<typename K , typename = typename std::enable_if<tbb::internal::has_is_transparent<key_compare>::value, K>::type> | |
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 std::enable_if<tbb::internal::has_is_transparent<key_compare>::value, K>::type> | |
std::pair< iterator, iterator > | equal_range (const K &key) |
template<typename K , typename = typename std::enable_if<tbb::internal::has_is_transparent<key_compare>::value, K>::type> | |
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... 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 215 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 219 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 218 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 246 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 228 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 235 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 233 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 230 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 237 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 227 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 220 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 222 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 225 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 247 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 241 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 240 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 242 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 224 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 234 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 239 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 232 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 229 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 236 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 217 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 221 of file _concurrent_skip_list_impl.h.
|
protected |
Definition at line 223 of file _concurrent_skip_list_impl.h.
|
inline |
Default constructor. Construct empty skip list.
Definition at line 255 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head().
|
inlineexplicit |
Definition at line 259 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head().
|
inline |
Definition at line 266 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 275 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 284 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 293 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_move(), and tbb::move().
|
inline |
Definition at line 300 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 313 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 524 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 528 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 913 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 532 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 544 of file _concurrent_skip_list_impl.h.
|
inlinenoexcept |
Definition at line 507 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 498 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 503 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 489 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_count(), and key.
|
inline |
Definition at line 494 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_count(), and key.
|
inlineprivate |
Definition at line 947 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 919 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 974 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 978 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 964 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 393 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 398 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::emplace().
|
inline |
Definition at line 556 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::size().
|
inline |
Definition at line 536 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 540 of file _concurrent_skip_list_impl.h.
|
inline |
Definition at line 577 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 581 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 586 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 591 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 718 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_extract(), and tbb::interface10::internal::concurrent_skip_list< Traits >::internal_insert_node().
|
inline |
Definition at line 471 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 475 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find(), and key.
|
inline |
Definition at line 480 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find(), and key.
|
inline |
Definition at line 485 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::internal_find(), and key.
|
inline |
Definition at line 560 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::my_node_allocator.
|
inlinestaticprivate |
Definition at line 982 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 667 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 348 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 352 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 356 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::insert(), and value.
|
inline |
Definition at line 361 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::insert(), tbb::move(), and value.
|
inline |
Definition at line 367 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 372 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::insert().
|
inline |
Definition at line 376 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 387 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::insert(), and tbb::move().
|
inlineprivate |
Definition at line 890 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 895 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 685 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 838 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_arrays(), 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 673 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 679 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 703 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(), and tbb::interface10::internal::concurrent_skip_list< Traits >::internal_get_bound().
|
inlineprivate |
Definition at line 812 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 825 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 731 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 740 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 867 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 658 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 986 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 992 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 595 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
|
inline |
Definition at line 435 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 439 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 444 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 449 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 552 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::my_node_allocator.
|
inline |
Definition at line 318 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 330 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 341 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 909 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 654 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 655 of file _concurrent_skip_list_impl.h.
|
inline |
Definition at line 548 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 564 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 771 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 799 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 403 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 412 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 419 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 426 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 431 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 453 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 457 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 462 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 467 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 597 of file _concurrent_skip_list_impl.h.
References tbb::interface10::internal::concurrent_skip_list< Traits >::my_compare.
Definition at line 1018 of file _concurrent_skip_list_impl.h.
|
static |
Definition at line 250 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 1015 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 >::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 244 of file _concurrent_skip_list_impl.h.
Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::create_dummy_head().
|
private |
Definition at line 1013 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 1012 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 1020 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().