Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
#include <_concurrent_unordered_impl.h>
Classes | |
struct | node |
Public Types | |
typedef split_ordered_list< T, Allocator > | self_type |
typedef tbb::internal::allocator_rebind< Allocator, T >::type | allocator_type |
typedef node * | nodeptr_t |
typedef tbb::internal::allocator_traits< allocator_type >::value_type | value_type |
typedef tbb::internal::allocator_traits< allocator_type >::size_type | size_type |
typedef tbb::internal::allocator_traits< allocator_type >::difference_type | difference_type |
typedef tbb::internal::allocator_traits< allocator_type >::pointer | pointer |
typedef tbb::internal::allocator_traits< allocator_type >::const_pointer | const_pointer |
typedef value_type & | reference |
typedef const value_type & | const_reference |
typedef solist_iterator< self_type, const value_type > | const_iterator |
typedef solist_iterator< self_type, value_type > | iterator |
typedef flist_iterator< self_type, const value_type > | raw_const_iterator |
typedef flist_iterator< self_type, value_type > | raw_iterator |
Static Public Member Functions | |
static sokey_t | get_order_key (const raw_const_iterator &it) |
static sokey_t | get_safe_order_key (const raw_const_iterator &it) |
static iterator | get_iterator (const_iterator it) |
static nodeptr_t | try_insert_atomic (nodeptr_t previous, nodeptr_t new_node, nodeptr_t current_node) |
Private Member Functions | |
void | check_range (raw_iterator first, raw_iterator last) |
void | check_range () |
Private Attributes | |
tbb::internal::allocator_rebind< allocator_type, node >::type | my_node_allocator |
size_type | my_element_count |
nodeptr_t | my_head |
Friends | |
template<typename Traits > | |
class | concurrent_unordered_base |
Definition at line 203 of file _concurrent_unordered_impl.h.
typedef tbb::internal::allocator_rebind<Allocator, T>::type tbb::interface5::internal::split_ordered_list< T, Allocator >::allocator_type |
Definition at line 208 of file _concurrent_unordered_impl.h.
typedef solist_iterator<self_type, const value_type> tbb::interface5::internal::split_ordered_list< T, Allocator >::const_iterator |
Definition at line 222 of file _concurrent_unordered_impl.h.
typedef tbb::internal::allocator_traits<allocator_type>::const_pointer tbb::interface5::internal::split_ordered_list< T, Allocator >::const_pointer |
Definition at line 217 of file _concurrent_unordered_impl.h.
typedef const value_type& tbb::interface5::internal::split_ordered_list< T, Allocator >::const_reference |
Definition at line 220 of file _concurrent_unordered_impl.h.
typedef tbb::internal::allocator_traits<allocator_type>::difference_type tbb::interface5::internal::split_ordered_list< T, Allocator >::difference_type |
Definition at line 215 of file _concurrent_unordered_impl.h.
typedef solist_iterator<self_type, value_type> tbb::interface5::internal::split_ordered_list< T, Allocator >::iterator |
Definition at line 223 of file _concurrent_unordered_impl.h.
typedef node* tbb::interface5::internal::split_ordered_list< T, Allocator >::nodeptr_t |
Definition at line 211 of file _concurrent_unordered_impl.h.
typedef tbb::internal::allocator_traits<allocator_type>::pointer tbb::interface5::internal::split_ordered_list< T, Allocator >::pointer |
Definition at line 216 of file _concurrent_unordered_impl.h.
typedef flist_iterator<self_type, const value_type> tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_const_iterator |
Definition at line 224 of file _concurrent_unordered_impl.h.
typedef flist_iterator<self_type, value_type> tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_iterator |
Definition at line 225 of file _concurrent_unordered_impl.h.
typedef value_type& tbb::interface5::internal::split_ordered_list< T, Allocator >::reference |
Definition at line 219 of file _concurrent_unordered_impl.h.
typedef split_ordered_list<T, Allocator> tbb::interface5::internal::split_ordered_list< T, Allocator >::self_type |
Definition at line 206 of file _concurrent_unordered_impl.h.
typedef tbb::internal::allocator_traits<allocator_type>::size_type tbb::interface5::internal::split_ordered_list< T, Allocator >::size_type |
Definition at line 214 of file _concurrent_unordered_impl.h.
typedef tbb::internal::allocator_traits<allocator_type>::value_type tbb::interface5::internal::split_ordered_list< T, Allocator >::value_type |
Definition at line 213 of file _concurrent_unordered_impl.h.
|
inline |
Definition at line 333 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::create_node(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::my_head.
|
inline |
Definition at line 341 of file _concurrent_unordered_impl.h.
References __TBB_ASSERT, tbb::interface5::internal::split_ordered_list< T, Allocator >::clear(), tbb::interface5::internal::split_ordered_list< T, Allocator >::destroy_node(), tbb::interface5::internal::split_ordered_list< T, Allocator >::my_head, and tbb::interface5::internal::split_ordered_list< T, Allocator >::node::my_next.
|
inline |
Definition at line 381 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::first_real_iterator(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_begin().
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::begin(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::cbegin().
|
inline |
Definition at line 386 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::first_real_iterator(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_begin().
|
inline |
Definition at line 398 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::begin().
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::cbegin().
|
inline |
Definition at line 402 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::end().
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::cend().
|
inlineprivate |
Definition at line 688 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_begin(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_end().
Referenced by tbb::interface5::internal::split_ordered_list< T, Allocator >::insert_dummy(), tbb::interface5::internal::split_ordered_list< T, Allocator >::move_all(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::try_insert().
|
inlineprivate |
Definition at line 674 of file _concurrent_unordered_impl.h.
References __TBB_ASSERT, tbb::internal::first(), tbb::interface5::internal::split_ordered_list< T, Allocator >::get_order_key(), tbb::internal::last(), tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_end(), and tbb::internal::suppress_unused_warning().
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::concurrent_unordered_base().
|
inline |
Definition at line 361 of file _concurrent_unordered_impl.h.
References __TBB_ASSERT, tbb::interface5::internal::split_ordered_list< T, Allocator >::destroy_node(), tbb::interface5::internal::split_ordered_list< T, Allocator >::my_element_count, tbb::interface5::internal::split_ordered_list< T, Allocator >::my_head, and tbb::interface5::internal::split_ordered_list< T, Allocator >::node::my_next.
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::clear(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_copy(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::~split_ordered_list().
|
inline |
Definition at line 285 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::node::init(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::my_node_allocator.
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::concurrent_unordered_base(), tbb::interface5::internal::split_ordered_list< T, Allocator >::insert_dummy(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_insert(), tbb::interface5::internal::split_ordered_list< T, Allocator >::move_all(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::split_ordered_list().
|
inline |
Definition at line 293 of file _concurrent_unordered_impl.h.
References __TBB_CATCH, __TBB_RETHROW, __TBB_TRY, tbb::interface5::internal::split_ordered_list< T, Allocator >::node::init(), tbb::interface5::internal::split_ordered_list< T, Allocator >::node::my_element, and tbb::interface5::internal::split_ordered_list< T, Allocator >::my_node_allocator.
|
inline |
|
inline |
Definition at line 319 of file _concurrent_unordered_impl.h.
References __TBB_CATCH, __TBB_PACK_EXPANSION, __TBB_RETHROW, __TBB_TRY, tbb::interface5::internal::split_ordered_list< T, Allocator >::node::my_element, and tbb::interface5::internal::split_ordered_list< T, Allocator >::my_node_allocator.
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::emplace().
|
inline |
Definition at line 510 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::node::is_dummy(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::my_node_allocator.
Referenced by tbb::interface5::internal::split_ordered_list< T, Allocator >::clear(), tbb::interface5::internal::split_ordered_list< T, Allocator >::erase_node(), tbb::interface5::internal::split_ordered_list< T, Allocator >::insert_dummy(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_insert(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::~split_ordered_list().
|
inline |
Definition at line 407 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::my_element_count.
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::empty().
|
inline |
Definition at line 390 of file _concurrent_unordered_impl.h.
Referenced by tbb::interface5::internal::split_ordered_list< T, Allocator >::cend(), tbb::interface5::internal::concurrent_unordered_base< Traits >::end(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::try_insert().
|
inline |
Definition at line 394 of file _concurrent_unordered_impl.h.
|
inline |
Definition at line 635 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::erase_node().
|
inline |
Definition at line 626 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::erase_node(), tbb::interface5::internal::split_ordered_list< T, Allocator >::first_real_iterator(), tbb::interface5::internal::split_ordered_list< T, Allocator >::get_iterator(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::my_element_count.
|
inline |
Definition at line 620 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::erase_node().
|
inline |
Definition at line 614 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::erase_node_impl().
|
inline |
Definition at line 607 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::destroy_node(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::erase_node_impl().
Referenced by tbb::interface5::internal::split_ordered_list< T, Allocator >::erase_node(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_erase(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_extract(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::move_all().
|
inline |
Definition at line 598 of file _concurrent_unordered_impl.h.
References __TBB_ASSERT, tbb::interface5::internal::flist_iterator< Solist, Value >::get_node_ptr(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::node::my_next.
Referenced by tbb::interface5::internal::split_ordered_list< T, Allocator >::erase_node().
|
inline |
Definition at line 500 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::flist_iterator< Solist, Value >::get_node_ptr(), tbb::interface5::internal::split_ordered_list< T, Allocator >::node::is_dummy(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_end().
|
inline |
Definition at line 489 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::flist_iterator< Solist, Value >::get_node_ptr(), tbb::interface5::internal::split_ordered_list< T, Allocator >::node::is_dummy(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_end().
Referenced by tbb::interface5::internal::split_ordered_list< T, Allocator >::begin(), tbb::interface5::internal::split_ordered_list< T, Allocator >::erase_node(), tbb::interface5::internal::concurrent_unordered_base< Traits >::const_range_type::set_midpoint(), tbb::interface5::internal::concurrent_unordered_base< Traits >::unsafe_begin(), and tbb::interface5::internal::concurrent_unordered_base< Traits >::unsafe_end().
|
inline |
Definition at line 357 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::my_node_allocator.
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::get_allocator().
|
inlinestatic |
Definition at line 483 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::solist_iterator< Solist, Value >::my_list_ptr, and tbb::interface5::internal::flist_iterator< Solist, Value >::my_node_ptr.
|
inline |
Definition at line 478 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::flist_iterator< Solist, Value >::get_node_ptr().
|
inline |
Definition at line 472 of file _concurrent_unordered_impl.h.
References __TBB_ASSERT, tbb::interface5::internal::flist_iterator< Solist, Value >::get_node_ptr(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::node::is_dummy().
|
inline |
Definition at line 465 of file _concurrent_unordered_impl.h.
References __TBB_ASSERT, tbb::interface5::internal::flist_iterator< Solist, Value >::get_node_ptr(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::node::is_dummy().
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::const_range_type::begin(), tbb::interface5::internal::concurrent_unordered_base< Traits >::const_range_type::end(), tbb::interface5::internal::split_ordered_list< T, Allocator >::erase_node(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_equal_range(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_erase(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_extract(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_find(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_insert(), tbb::interface5::internal::split_ordered_list< T, Allocator >::move_all(), and tbb::interface5::internal::concurrent_unordered_base< Traits >::unsafe_erase().
|
inlinestatic |
Definition at line 454 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::flist_iterator< Solist, Value >::get_node_ptr(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::node::get_order_key().
Referenced by tbb::interface5::internal::split_ordered_list< T, Allocator >::check_range(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::insert_dummy().
|
inlinestatic |
Definition at line 458 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::flist_iterator< Solist, Value >::get_node_ptr(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::node::get_order_key().
|
inline |
Definition at line 541 of file _concurrent_unordered_impl.h.
References __TBB_ASSERT, tbb::interface5::internal::split_ordered_list< T, Allocator >::check_range(), tbb::interface5::internal::split_ordered_list< T, Allocator >::create_node(), tbb::interface5::internal::split_ordered_list< T, Allocator >::destroy_node(), tbb::interface5::internal::flist_iterator< Solist, Value >::get_node_ptr(), tbb::interface5::internal::split_ordered_list< T, Allocator >::get_order_key(), tbb::internal::last(), tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_end(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::try_insert_atomic().
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::init_bucket().
|
inline |
Definition at line 417 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::my_node_allocator.
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::max_size().
|
inline |
Definition at line 642 of file _concurrent_unordered_impl.h.
References __TBB_ASSERT, tbb::interface5::internal::split_ordered_list< T, Allocator >::check_range(), tbb::interface5::internal::split_ordered_list< T, Allocator >::create_node(), tbb::interface5::internal::split_ordered_list< T, Allocator >::erase_node(), tbb::internal::first(), tbb::interface5::internal::split_ordered_list< T, Allocator >::get_iterator(), tbb::interface5::internal::split_ordered_list< T, Allocator >::node::get_order_key(), tbb::interface5::internal::split_ordered_list< T, Allocator >::node::is_dummy(), tbb::internal::last(), tbb::interface5::internal::split_ordered_list< T, Allocator >::node::my_element, tbb::interface5::internal::split_ordered_list< T, Allocator >::my_head, tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_begin(), tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_end(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::try_insert_atomic().
|
inline |
Definition at line 437 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::my_head.
Referenced by tbb::interface5::internal::split_ordered_list< T, Allocator >::begin(), tbb::interface5::internal::split_ordered_list< T, Allocator >::check_range(), tbb::interface5::internal::concurrent_unordered_base< Traits >::clear(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_init(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::move_all().
|
inline |
Definition at line 442 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::my_head.
|
inline |
Definition at line 446 of file _concurrent_unordered_impl.h.
Referenced by tbb::interface5::internal::split_ordered_list< T, Allocator >::check_range(), tbb::interface5::internal::split_ordered_list< T, Allocator >::first_real_iterator(), tbb::interface5::internal::split_ordered_list< T, Allocator >::insert_dummy(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_equal_range(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_erase(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_extract(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_find(), tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_insert(), tbb::interface5::internal::split_ordered_list< T, Allocator >::move_all(), tbb::interface5::internal::concurrent_unordered_base< Traits >::unsafe_bucket_size(), and tbb::interface5::internal::concurrent_unordered_base< Traits >::unsafe_end().
|
inline |
Definition at line 450 of file _concurrent_unordered_impl.h.
|
inline |
Definition at line 412 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::my_element_count.
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::size().
|
inline |
Definition at line 422 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::my_element_count, tbb::interface5::internal::split_ordered_list< T, Allocator >::my_head, and tbb::internal::swap().
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::swap().
|
inline |
Definition at line 523 of file _concurrent_unordered_impl.h.
References tbb::internal::as_atomic(), tbb::interface5::internal::split_ordered_list< T, Allocator >::check_range(), tbb::interface5::internal::split_ordered_list< T, Allocator >::end(), tbb::interface5::internal::flist_iterator< Solist, Value >::get_node_ptr(), tbb::interface5::internal::split_ordered_list< T, Allocator >::my_element_count, and tbb::interface5::internal::split_ordered_list< T, Allocator >::try_insert_atomic().
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::internal_insert().
|
inlinestatic |
Definition at line 517 of file _concurrent_unordered_impl.h.
References tbb::interface5::internal::split_ordered_list< T, Allocator >::node::atomic_set_next(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::node::my_next.
Referenced by tbb::interface5::internal::concurrent_unordered_base< Traits >::concurrent_unordered_base(), tbb::interface5::internal::split_ordered_list< T, Allocator >::insert_dummy(), tbb::interface5::internal::split_ordered_list< T, Allocator >::move_all(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::try_insert().
|
friend |
Definition at line 671 of file _concurrent_unordered_impl.h.
|
private |
Definition at line 696 of file _concurrent_unordered_impl.h.
Referenced by tbb::interface5::internal::split_ordered_list< T, Allocator >::clear(), tbb::interface5::internal::concurrent_unordered_base< Traits >::concurrent_unordered_base(), tbb::interface5::internal::split_ordered_list< T, Allocator >::empty(), tbb::interface5::internal::split_ordered_list< T, Allocator >::erase_node(), tbb::interface5::internal::split_ordered_list< T, Allocator >::size(), tbb::interface5::internal::split_ordered_list< T, Allocator >::swap(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::try_insert().
|
private |
Definition at line 697 of file _concurrent_unordered_impl.h.
Referenced by tbb::interface5::internal::split_ordered_list< T, Allocator >::clear(), tbb::interface5::internal::concurrent_unordered_base< Traits >::concurrent_unordered_base(), tbb::interface5::internal::split_ordered_list< T, Allocator >::move_all(), tbb::interface5::internal::split_ordered_list< T, Allocator >::raw_begin(), tbb::interface5::internal::split_ordered_list< T, Allocator >::split_ordered_list(), tbb::interface5::internal::split_ordered_list< T, Allocator >::swap(), and tbb::interface5::internal::split_ordered_list< T, Allocator >::~split_ordered_list().
|
private |
Definition at line 695 of file _concurrent_unordered_impl.h.
Referenced by tbb::interface5::internal::split_ordered_list< T, Allocator >::create_node(), tbb::interface5::internal::split_ordered_list< T, Allocator >::create_node_v(), tbb::interface5::internal::split_ordered_list< T, Allocator >::destroy_node(), tbb::interface5::internal::split_ordered_list< T, Allocator >::get_allocator(), tbb::interface5::internal::split_ordered_list< T, Allocator >::max_size(), and tbb::interface5::internal::concurrent_unordered_base< Traits >::operator=().