17 #ifndef __TBB_node_handle_H 18 #define __TBB_node_handle_H 21 #include "../tbb_config.h" 28 namespace interface5 {
30 template <
typename T,
typename Allocator>
31 class split_ordered_list;
32 template <
typename Traits>
33 class concurrent_unordered_base;
37 namespace interface10{
39 template<
typename Traits>
40 class concurrent_skip_list;
46 template<
typename Value,
typename Node,
typename Allocator>
62 explicit operator bool()
const {
return my_node != NULL; }
92 node_allocator.deallocate(
my_node, 1);
103 template<
typename Key,
typename Value,
typename Node,
typename Allocator>
115 return *const_cast<key_type*>(&(this->
my_node->value().first));
119 __TBB_ASSERT(!this->
empty(),
"Cannot get mapped value from the empty node_type object");
120 return this->
my_node->value().second;
124 template<
typename T,
typename A>
127 template<
typename Traits>
130 template<
typename Traits>
137 template<
typename Key,
typename Node,
typename Allocator>
147 __TBB_ASSERT(!this->
empty(),
"Cannot get value from the empty node_type object");
148 return *const_cast<value_type*>(&(this->
my_node->value()));
152 template<
typename T,
typename A>
155 template<
typename Traits>
158 template<
typename Traits>
node_handle(typename base_type::node *n)
base_type::allocator_type allocator_type
Value::second_type mapped_type
allocator_type my_allocator
node_handle_base(node *n)
void allocator_swap(MyAlloc &my_allocator, OtherAlloc &other_allocator, traits_true_type)
value_type & value() const
void allocator_move_assignment(MyAlloc &my_allocator, OtherAlloc &other_allocator, traits_true_type)
base_type::allocator_type allocator_type
node_handle_base< Value, Node, Allocator > base_type
void swap(node_handle_base &nh)
tbb::internal::allocator_traits< allocator_type > traits_type
allocator_traits< Alloc >::template rebind_alloc< T >::other type
node_handle_base(node_handle_base &&nh)
allocator_type get_allocator() const
node_handle(typename base_type::node *n)
node_handle_base< Key, Node, Allocator > base_type
mapped_type & mapped() const
void swap(atomic< T > &lhs, atomic< T > &rhs)
static void destroy(allocator_type &, T *p)
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
node_handle_base & operator=(node_handle_base &&nh)
void move(tbb_thread &t1, tbb_thread &t2)