tbb::internal::node_handle< Key, Value, Node, Allocator > Class Template Reference

`#include <_node_handle_impl.h>`

Inheritance diagram for tbb::internal::node_handle< Key, Value, Node, Allocator >:
Collaboration diagram for tbb::internal::node_handle< Key, Value, Node, 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::internal::node_handle_base< Value, Node, Allocator >
typedef Allocator | allocator_type

## Public Member Functions

| node_handle ()
key_type & | key () const
mapped_type & | mapped () const
Public Member Functions inherited from tbb::internal::node_handle_base< Value, Node, Allocator >
| node_handle_base ()
| node_handle_base (node_handle_base &&nh)
bool | empty () const
| operator bool () const
| ~node_handle_base ()
node_handle_base & | operator= (node_handle_base &&nh)
void | swap (node_handle_base &nh)
allocator_type | get_allocator () const

## Private Types

typedef node_handle_base< Value, Node, Allocator > | base_type

## Private Member Functions

| node_handle (typename base_type::node *n)

## Friends

template<typename T , typename A >
class | tbb::interface5::internal::split_ordered_list
template<typename Traits >
class | tbb::interface5::internal::concurrent_unordered_base
template<typename Traits >
class | tbb::interface10::internal::concurrent_skip_list

## Additional Inherited Members

Protected Types inherited from tbb::internal::node_handle_base< Value, Node, Allocator >
typedef Node | node
typedef tbb::internal::allocator_traits< allocator_type > | traits_type
Protected Member Functions inherited from tbb::internal::node_handle_base< Value, Node, Allocator >
| node_handle_base (node *n)
void | internal_destroy ()
void | deactivate ()
Protected Attributes inherited from tbb::internal::node_handle_base< Value, Node, Allocator >
node * | my_node
allocator_type | my_allocator

## Detailed Description

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

Definition at line 104 of file _node_handle_impl.h.

## Member Typedef Documentation

## allocator_type

template<typename Key, typename Value, typename Node, typename Allocator>

typedef base_type::allocator_type tbb::internal::node_handle< Key, Value, Node, Allocator >::allocator_type

Definition at line 109 of file _node_handle_impl.h.

## base_type

template<typename Key, typename Value, typename Node, typename Allocator>

typedef node_handle_base<Value, Node, Allocator> tbb::internal::node_handle< Key, Value, Node, Allocator >::base_type

private

Definition at line 105 of file _node_handle_impl.h.

## key_type

template<typename Key, typename Value, typename Node, typename Allocator>

typedef Key tbb::internal::node_handle< Key, Value, Node, Allocator >::key_type

Definition at line 107 of file _node_handle_impl.h.

## mapped_type

template<typename Key, typename Value, typename Node, typename Allocator>

typedef Value::second_type tbb::internal::node_handle< Key, Value, Node, Allocator >::mapped_type

Definition at line 108 of file _node_handle_impl.h.

## Constructor & Destructor Documentation

## node_handle() [1/2]

template<typename Key, typename Value, typename Node, typename Allocator>

tbb::internal::node_handle< Key, Value, Node, Allocator >::node_handle | ( |  | ) |

inline

Definition at line 111 of file _node_handle_impl.h.

: base_type() {}

## node_handle() [2/2]

template<typename Key, typename Value, typename Node, typename Allocator>

tbb::internal::node_handle< Key, Value, Node, Allocator >::node_handle | ( | typename base_type::node * | n | ) |

inline private

Definition at line 133 of file _node_handle_impl.h.

: base_type(n) {}

## Member Function Documentation

## key()

template<typename Key, typename Value, typename Node, typename Allocator>

key_type& tbb::internal::node_handle< Key, Value, Node, Allocator >::key | ( |  | ) | const

inline

Definition at line 113 of file _node_handle_impl.h.

{
__TBB_ASSERT(!this->empty(), "Cannot get key from the empty node_type object");
return *const_cast<key_type*>(&(this->my_node->value().first));
}

References __TBB_ASSERT, tbb::internal::node_handle_base< Value, Node, Allocator >::empty(), and tbb::internal::node_handle_base< Value, Node, Allocator >::my_node.

Here is the call graph for this function:

## mapped()

template<typename Key, typename Value, typename Node, typename Allocator>

mapped_type& tbb::internal::node_handle< Key, Value, Node, Allocator >::mapped | ( |  | ) | const

inline

Definition at line 118 of file _node_handle_impl.h.

{
__TBB_ASSERT(!this->empty(), "Cannot get mapped value from the empty node_type object");
return this->my_node->value().second;
}

References __TBB_ASSERT, tbb::internal::node_handle_base< Value, Node, Allocator >::empty(), and tbb::internal::node_handle_base< Value, Node, Allocator >::my_node.

Here is the call graph for this function:

## Friends And Related Function Documentation

## tbb::interface10::internal::concurrent_skip_list

template<typename Key, typename Value, typename Node, typename Allocator>
template<typename Traits >

friend class tbb::interface10::internal::concurrent_skip_list

friend

Definition at line 131 of file _node_handle_impl.h.

## tbb::interface5::internal::concurrent_unordered_base

template<typename Key, typename Value, typename Node, typename Allocator>
template<typename Traits >

friend class tbb::interface5::internal::concurrent_unordered_base

friend

Definition at line 128 of file _node_handle_impl.h.

## tbb::interface5::internal::split_ordered_list

template<typename Key, typename Value, typename Node, typename Allocator>
template<typename T , typename A >

friend class tbb::interface5::internal::split_ordered_list

friend

Definition at line 125 of file _node_handle_impl.h.

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

- _node_handle_impl.h

__TBB_ASSERT
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165
tbb::internal::node_handle::base_type
node_handle_base< Value, Node, Allocator > base_type
Definition: _node_handle_impl.h:105
tbb::internal::node_handle_base::my_node
node * my_node
Definition: _node_handle_impl.h:98
tbb::internal::node_handle_base::empty
bool empty() const
Definition: _node_handle_impl.h:61

Copyright © 2005-2020 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.