Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::interface5::internal::node_handle< Key, Value, Allocator > Class Template Reference

#include <_concurrent_unordered_impl.h>

Inheritance diagram for tbb::interface5::internal::node_handle< Key, Value, Allocator >:
Collaboration diagram for tbb::interface5::internal::node_handle< Key, Value, Allocator >:

Public Types

typedef Key key_type
 
typedef Value::second_type mapped_type
 
typedef base_type::allocator_type allocator_type
 
- Public Types inherited from tbb::interface5::internal::node_handle_base< Value, Allocator >
typedef Allocator allocator_type
 

Public Member Functions

 node_handle ()
 
key_typekey () const
 
mapped_typemapped () const
 
- Public Member Functions inherited from tbb::interface5::internal::node_handle_base< Value, Allocator >
 node_handle_base ()
 
 node_handle_base (node_handle_base &&nh)
 
bool empty () const
 
 operator bool () const
 
 ~node_handle_base ()
 
node_handle_baseoperator= (node_handle_base &&nh)
 
void swap (node_handle_base &nh)
 
allocator_type get_allocator () const
 

Private Types

typedef node_handle_base< Value, Allocator > base_type
 

Private Member Functions

 node_handle (typename base_type::node *n)
 

Friends

template<typename T , typename A >
class split_ordered_list
 
template<typename Traits >
class concurrent_unordered_base
 

Additional Inherited Members

- Protected Types inherited from tbb::interface5::internal::node_handle_base< Value, Allocator >
typedef split_ordered_list< Value, allocator_type >::node node
 
- Protected Member Functions inherited from tbb::interface5::internal::node_handle_base< Value, Allocator >
 node_handle_base (node *n)
 
void internal_destroy ()
 
void deactivate ()
 
- Protected Attributes inherited from tbb::interface5::internal::node_handle_base< Value, Allocator >
nodemy_node
 
allocator_type my_allocator
 

Detailed Description

template<typename Key, typename Value, typename Allocator>
class tbb::interface5::internal::node_handle< Key, Value, Allocator >

Definition at line 1712 of file _concurrent_unordered_impl.h.

Member Typedef Documentation

◆ allocator_type

template<typename Key , typename Value , typename Allocator >
typedef base_type::allocator_type tbb::interface5::internal::node_handle< Key, Value, Allocator >::allocator_type

Definition at line 1717 of file _concurrent_unordered_impl.h.

◆ base_type

template<typename Key , typename Value , typename Allocator >
typedef node_handle_base<Value, Allocator> tbb::interface5::internal::node_handle< Key, Value, Allocator >::base_type
private

Definition at line 1713 of file _concurrent_unordered_impl.h.

◆ key_type

template<typename Key , typename Value , typename Allocator >
typedef Key tbb::interface5::internal::node_handle< Key, Value, Allocator >::key_type

Definition at line 1715 of file _concurrent_unordered_impl.h.

◆ mapped_type

template<typename Key , typename Value , typename Allocator >
typedef Value::second_type tbb::interface5::internal::node_handle< Key, Value, Allocator >::mapped_type

Definition at line 1716 of file _concurrent_unordered_impl.h.

Constructor & Destructor Documentation

◆ node_handle() [1/2]

template<typename Key , typename Value , typename Allocator >
tbb::interface5::internal::node_handle< Key, Value, Allocator >::node_handle ( )
inline

Definition at line 1719 of file _concurrent_unordered_impl.h.

1719 : base_type() {}
node_handle_base< Value, Allocator > base_type

◆ node_handle() [2/2]

template<typename Key , typename Value , typename Allocator >
tbb::interface5::internal::node_handle< Key, Value, Allocator >::node_handle ( typename base_type::node n)
inlineprivate

Definition at line 1738 of file _concurrent_unordered_impl.h.

1738 : base_type(n) {}
node_handle_base< Value, Allocator > base_type

Member Function Documentation

◆ key()

template<typename Key , typename Value , typename Allocator >
key_type& tbb::interface5::internal::node_handle< Key, Value, Allocator >::key ( ) const
inline

Definition at line 1721 of file _concurrent_unordered_impl.h.

1721  {
1722  __TBB_ASSERT(!this->empty(), "Cannot get key from the empty node_type object");
1723  return *const_cast<key_type*>(&(this->my_node->my_element.first));
1724  }
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165

References __TBB_ASSERT, tbb::interface5::internal::node_handle_base< Value, Allocator >::empty(), tbb::interface5::internal::split_ordered_list< T, Allocator >::node::my_element, and tbb::interface5::internal::node_handle_base< Value, Allocator >::my_node.

Here is the call graph for this function:

◆ mapped()

template<typename Key , typename Value , typename Allocator >
mapped_type& tbb::interface5::internal::node_handle< Key, Value, Allocator >::mapped ( ) const
inline

Definition at line 1726 of file _concurrent_unordered_impl.h.

1726  {
1727  __TBB_ASSERT(!this->empty(), "Cannot get mapped value from the empty node_type object");
1728  return this->my_node->my_element.second;
1729  }
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165

References __TBB_ASSERT, tbb::interface5::internal::node_handle_base< Value, Allocator >::empty(), tbb::interface5::internal::split_ordered_list< T, Allocator >::node::my_element, and tbb::interface5::internal::node_handle_base< Value, Allocator >::my_node.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ concurrent_unordered_base

template<typename Key , typename Value , typename Allocator >
template<typename Traits >
friend class concurrent_unordered_base
friend

Definition at line 1736 of file _concurrent_unordered_impl.h.

◆ split_ordered_list

template<typename Key , typename Value , typename Allocator >
template<typename T , typename A >
friend class split_ordered_list
friend

Definition at line 1733 of file _concurrent_unordered_impl.h.


The documentation for this class was generated from the following file:

Copyright © 2005-2019 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.