Home ⌂Doc Index ◂Up ▴
Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args > Class Template Reference
Inheritance diagram for tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >:
Collaboration diagram for tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >:

Classes

class  run_finalize_func
 
class  run_kernel_func
 
class  send_func
 

Public Member Functions

 args_storage (const kernel_type &kernel, StreamFactory &f, Args &&... args)
 
 args_storage (const args_storage &k)
 
 args_storage (const args_storage_base &k, Args &&... args)
 
void enqueue (kernel_input_tuple &ip, output_ports_type &op, const streaming_node &n) __TBB_override
 
void send (device_type d) __TBB_override
 
args_storage_baseclone () const __TBB_override
 
- Public Member Functions inherited from tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage_base
virtual ~args_storage_base ()
 

Private Types

typedef args_storage_base::output_ports_type output_ports_type
 
typedef tbb::internal::stored_pack< Args... > args_pack_type
 

Private Member Functions

template<int N>
bool do_try_put (const kernel_input_tuple &ip, output_ports_type &op) const
 
template<int... S>
bool do_try_put (const kernel_input_tuple &ip, output_ports_type &op, internal::sequence< S... >) const
 

Static Private Member Functions

template<typename FinalizeFn >
static run_finalize_func< FinalizeFn > make_run_finalize_func (kernel_input_tuple &ip, StreamFactory &factory, FinalizeFn fn)
 

Private Attributes

args_pack_type my_args_pack
 

Additional Inherited Members

- Public Types inherited from tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage_base
typedef kernel_multifunction_node::output_ports_type output_ports_type
 
- Protected Member Functions inherited from tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage_base
 args_storage_base (const kernel_type &kernel, StreamFactory &f)
 
 args_storage_base (const args_storage_base &k)
 
- Protected Attributes inherited from tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage_base
const kernel_type my_kernel
 
StreamFactory & my_factory
 

Detailed Description

template<typename... Ports, typename JP, typename StreamFactory>
template<typename... Args>
class tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >

Definition at line 491 of file flow_graph.h.

Member Typedef Documentation

◆ args_pack_type

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
typedef tbb::internal::stored_pack<Args...> tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::args_pack_type
private

Definition at line 630 of file flow_graph.h.

◆ output_ports_type

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
typedef args_storage_base::output_ports_type tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::output_ports_type
private

Definition at line 492 of file flow_graph.h.

Constructor & Destructor Documentation

◆ args_storage() [1/3]

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::args_storage ( const kernel_type kernel,
StreamFactory &  f,
Args &&...  args 
)
inline

Definition at line 587 of file flow_graph.h.

588  { return false; }
589 
590 #if __TBB_PREVIEW_OPENCL_NODE

◆ args_storage() [2/3]

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::args_storage ( const args_storage &  k)
inline

◆ args_storage() [3/3]

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::args_storage ( const args_storage_base k,
Args &&...  args 
)
inline

Member Function Documentation

◆ clone()

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
args_storage_base* tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::clone ( ) const
inlinevirtual

Implements tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage_base.

Definition at line 624 of file flow_graph.h.

624  {
625  spin_mutex::scoped_lock l(my_mutex);
626  ++my_predecessor_count;
627  return true;
friend class scoped_lock
Definition: spin_mutex.h:179

◆ do_try_put() [1/2]

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
template<int N>
bool tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::do_try_put ( const kernel_input_tuple ip,
output_ports_type op 
) const
inlineprivate

Definition at line 496 of file flow_graph.h.

502  {}

◆ do_try_put() [2/2]

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
template<int... S>
bool tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::do_try_put ( const kernel_input_tuple ip,
output_ports_type op,
internal::sequence< S... >   
) const
inlineprivate

Definition at line 503 of file flow_graph.h.

513  { return false; }

◆ enqueue()

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
void tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::enqueue ( kernel_input_tuple ip,
output_ports_type op,
const streaming_node< tuple< Ports... >, JP, StreamFactory > &  n 
)
inlinevirtual

Implements tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage_base.

Definition at line 596 of file flow_graph.h.

599  : public receiver< continue_msg > {
600 public:
601 
603  __TBB_DEPRECATED typedef continue_msg input_type;
604 
607 
609  __TBB_DEPRECATED explicit continue_receiver(
610  __TBB_FLOW_GRAPH_PRIORITY_ARG1(int number_of_predecessors, node_priority_t priority)) {
611  my_predecessor_count = my_initial_predecessor_count = number_of_predecessors;
612  my_current_count = 0;
613  __TBB_FLOW_GRAPH_PRIORITY_EXPR( my_priority = priority; )
614  }
615 
#define __TBB_DEPRECATED
Definition: tbb_config.h:636
unsigned int node_priority_t
#define __TBB_FLOW_GRAPH_PRIORITY_ARG1(arg1, priority)
#define __TBB_FLOW_GRAPH_PRIORITY_EXPR(expr)
untyped_sender predecessor_type
The predecessor type for this node.
Definition: flow_graph.h:370

◆ make_run_finalize_func()

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
template<typename FinalizeFn >
static run_finalize_func<FinalizeFn> tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::make_run_finalize_func ( kernel_input_tuple ip,
StreamFactory &  factory,
FinalizeFn  fn 
)
inlinestaticprivate

Definition at line 568 of file flow_graph.h.

568  { return false; }
569 

◆ send()

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
void tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::send ( device_type  d)
inlinevirtual

Member Data Documentation

◆ my_args_pack

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
args_pack_type tbb::flow::interface11::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::my_args_pack
private

Definition at line 631 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.