internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type > Class Template Reference

`#include <_flow_graph_streaming_node.h>`

Collaboration diagram for internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >:

## Classes

struct | range_mapper
struct | range_value
struct | range_wrapper

## Public Member Functions

| kernel_executor_helper ()
| kernel_executor_helper (const kernel_executor_helper &executor)
| kernel_executor_helper (kernel_executor_helper &&executor)
| ~kernel_executor_helper ()
void | set_range (const range_type &work_size)
void | set_range (range_type &&work_size)
template<int N>
void | set_range (port_ref_impl< N, N >)
template<int N>
void | set_range (port_ref_impl< N, N >(*)())

## Protected Member Functions

template<typename ... Args>
void | enqueue_kernel_impl (kernel_input_tuple &ip, StreamFactory &factory, device_type device, const kernel_type &kernel, Args &... args) const

## Private Types

typedef StreamFactory::device_type | device_type
typedef StreamFactory::kernel_type | kernel_type
typedef KernelInputTuple | kernel_input_tuple
typedef StreamFactory::range_type | range_type

## Private Attributes

range_wrapper * | my_range_wrapper

## Detailed Description

### template<typename StreamFactory, typename KernelInputTuple>
class internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >

Definition at line 199 of file _flow_graph_streaming_node.h.

## Member Typedef Documentation

## device_type

template<typename StreamFactory , typename KernelInputTuple >

typedef StreamFactory::device_type internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::device_type

private

Definition at line 200 of file _flow_graph_streaming_node.h.

## kernel_input_tuple

template<typename StreamFactory , typename KernelInputTuple >

typedef KernelInputTuple internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::kernel_input_tuple

private

Definition at line 202 of file _flow_graph_streaming_node.h.

## kernel_type

template<typename StreamFactory , typename KernelInputTuple >

typedef StreamFactory::kernel_type internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::kernel_type

private

Definition at line 201 of file _flow_graph_streaming_node.h.

## range_type

template<typename StreamFactory , typename KernelInputTuple >

typedef StreamFactory::range_type internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::range_type

private

Definition at line 204 of file _flow_graph_streaming_node.h.

## Constructor & Destructor Documentation

## kernel_executor_helper() [1/3]

template<typename StreamFactory , typename KernelInputTuple >

internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::kernel_executor_helper | ( |  | ) |

inline

Definition at line 251 of file _flow_graph_streaming_node.h.

: my_range_wrapper(NULL) {}
internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::my_range_wrapper
range_wrapper * my_range_wrapper
Definition: _flow_graph_streaming_node.h:283

## kernel_executor_helper() [2/3]

template<typename StreamFactory , typename KernelInputTuple >

internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::kernel_executor_helper | ( | const kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type > & | executor | ) |

inline

Definition at line 253 of file _flow_graph_streaming_node.h.

: my_range_wrapper(executor.my_range_wrapper ? executor.my_range_wrapper->clone() : NULL) {}

## kernel_executor_helper() [3/3]

template<typename StreamFactory , typename KernelInputTuple >

internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::kernel_executor_helper | ( | kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type > && | executor | ) |

inline

Definition at line 255 of file _flow_graph_streaming_node.h.

: my_range_wrapper(executor.my_range_wrapper) {
// Set moving holder mappers to NULL to prevent double deallocation
executor.my_range_wrapper = NULL;
}

## ~kernel_executor_helper()

template<typename StreamFactory , typename KernelInputTuple >

internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::~kernel_executor_helper | ( |  | ) |

inline

Definition at line 260 of file _flow_graph_streaming_node.h.

{
if (my_range_wrapper) delete my_range_wrapper;
}

## Member Function Documentation

## enqueue_kernel_impl()

template<typename StreamFactory , typename KernelInputTuple >
template<typename ... Args>

void internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::enqueue_kernel_impl | ( | kernel_input_tuple & | ip,
|  | StreamFactory & | factory,
|  | device_type | device,
|  | const kernel_type & | kernel,
|  | Args &... | args
| ) |  | const

inline protected

Definition at line 245 of file _flow_graph_streaming_node.h.

{
__TBB_ASSERT(my_range_wrapper, "Range is not set. Call set_range() before running streaming_node.");
factory.send_kernel( device, kernel, my_range_wrapper->get_range(ip), args... );
}
__TBB_ASSERT
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165
internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::range_wrapper::get_range
virtual range_type get_range(const kernel_input_tuple &ip) const =0

References __TBB_ASSERT.

## set_range() [1/4]

template<typename StreamFactory , typename KernelInputTuple >

void internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::set_range | ( | const range_type & | work_size | ) |

inline

Definition at line 264 of file _flow_graph_streaming_node.h.

{
my_range_wrapper = new range_value(work_size);
}

## set_range() [2/4]

template<typename StreamFactory , typename KernelInputTuple >
template<int N>

void internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::set_range | ( | port_ref_impl< N, N > | *)( | ) |

inline

Definition at line 278 of file _flow_graph_streaming_node.h.

{
my_range_wrapper = new range_mapper<N>;
}

## set_range() [3/4]

template<typename StreamFactory , typename KernelInputTuple >
template<int N>

void internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::set_range | ( | port_ref_impl< N, N > |  | ) |

inline

Definition at line 273 of file _flow_graph_streaming_node.h.

{
my_range_wrapper = new range_mapper<N>;
}

## set_range() [4/4]

template<typename StreamFactory , typename KernelInputTuple >

void internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::set_range | ( | range_type && | work_size | ) |

inline

Definition at line 268 of file _flow_graph_streaming_node.h.

{
my_range_wrapper = new range_value(std::move(work_size));
}
tbb::move
void move(tbb_thread &t1, tbb_thread &t2)
Definition: tbb_thread.h:319

References tbb::move().

Here is the call graph for this function:

## Member Data Documentation

## my_range_wrapper

template<typename StreamFactory , typename KernelInputTuple >

range_wrapper* internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::my_range_wrapper

private

Definition at line 283 of file _flow_graph_streaming_node.h.

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

- _flow_graph_streaming_node.h

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.