Home ⌂Doc Index ◂Up ▴
Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::flow::interface11::internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type > Class Template Reference

#include <flow_graph.h>

Collaboration diagram for tbb::flow::interface11::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 tbb::flow::interface11::internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >

Definition at line 200 of file flow_graph.h.

Member Typedef Documentation

◆ device_type

template<typename StreamFactory , typename KernelInputTuple >
typedef StreamFactory::device_type tbb::flow::interface11::internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::device_type
private

Definition at line 201 of file flow_graph.h.

◆ kernel_input_tuple

template<typename StreamFactory , typename KernelInputTuple >
typedef KernelInputTuple tbb::flow::interface11::internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::kernel_input_tuple
private

Definition at line 203 of file flow_graph.h.

◆ kernel_type

template<typename StreamFactory , typename KernelInputTuple >
typedef StreamFactory::kernel_type tbb::flow::interface11::internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::kernel_type
private

Definition at line 202 of file flow_graph.h.

◆ range_type

template<typename StreamFactory , typename KernelInputTuple >
typedef StreamFactory::range_type tbb::flow::interface11::internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::range_type
private

Definition at line 205 of file flow_graph.h.

Constructor & Destructor Documentation

◆ kernel_executor_helper() [1/3]

template<typename StreamFactory , typename KernelInputTuple >
tbb::flow::interface11::internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::kernel_executor_helper ( )
inline

Definition at line 252 of file flow_graph.h.

256 {

◆ kernel_executor_helper() [2/3]

template<typename StreamFactory , typename KernelInputTuple >
tbb::flow::interface11::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 254 of file flow_graph.h.

256 {

◆ kernel_executor_helper() [3/3]

template<typename StreamFactory , typename KernelInputTuple >
tbb::flow::interface11::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 256 of file flow_graph.h.

256  {
257  // Incoming 't' is NOT async
258  return this_recv->try_put_task(from_void_ptr(p));
259  }
void const char const char int ITT_FORMAT __itt_group_sync p

◆ ~kernel_executor_helper()

template<typename StreamFactory , typename KernelInputTuple >
tbb::flow::interface11::internal::kernel_executor_helper< StreamFactory, KernelInputTuple, typename tbb::internal::void_t< typename StreamFactory::range_type >::type >::~kernel_executor_helper ( )
inline

Definition at line 261 of file flow_graph.h.

Member Function Documentation

◆ enqueue_kernel_impl()

template<typename StreamFactory , typename KernelInputTuple >
template<typename ... Args>
void tbb::flow::interface11::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 246 of file flow_graph.h.

246  {
247  // This (T) is NOT async and incoming 'A<X> t' IS async
248  // Get data from async_msg
249  const async_msg<filtered_type>& msg = async_helpers< async_msg<filtered_type> >::from_void_ptr(p);
void const char const char int ITT_FORMAT __itt_group_sync p

◆ set_range() [1/4]

template<typename StreamFactory , typename KernelInputTuple >
void tbb::flow::interface11::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 265 of file flow_graph.h.

271  {

◆ set_range() [2/4]

template<typename StreamFactory , typename KernelInputTuple >
void tbb::flow::interface11::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 269 of file flow_graph.h.

271  {

◆ set_range() [3/4]

template<typename StreamFactory , typename KernelInputTuple >
template<int N>
void tbb::flow::interface11::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 274 of file flow_graph.h.

275  {
276  return static_cast<void*>(&static_cast<async_msg<filtered_type>&>(t));

◆ set_range() [4/4]

template<typename StreamFactory , typename KernelInputTuple >
template<int N>
void tbb::flow::interface11::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 279 of file flow_graph.h.

280  {
281  return *static_cast<const T*>(static_cast<const async_msg<filtered_type>*>(p));
void const char const char int ITT_FORMAT __itt_group_sync p

Member Data Documentation

◆ my_range_wrapper

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

Definition at line 284 of file flow_graph.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.