Home ⌂Doc Index ◂Up ▴
Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
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

◆ 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

◆ 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.

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

◆ ~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

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
inlineprotected

Definition at line 245 of file _flow_graph_streaming_node.h.

245  {
246  __TBB_ASSERT(my_range_wrapper, "Range is not set. Call set_range() before running streaming_node.");
247  factory.send_kernel( device, kernel, my_range_wrapper->get_range(ip), args... );
248  }
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165

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

◆ set_range() [2/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.

References tbb::move().

Here is the call graph for this function:

◆ 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

◆ set_range() [4/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

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:

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.