Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::flow::interface10::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args > Class Template Reference
Inheritance diagram for tbb::flow::interface10::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >:
Collaboration diagram for tbb::flow::interface10::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::interface10::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::interface10::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::interface10::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::interface10::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::interface10::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >

Definition at line 493 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::interface10::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::args_pack_type
private

Definition at line 632 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::interface10::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::output_ports_type
private

Definition at line 494 of file flow_graph.h.

Constructor & Destructor Documentation

◆ args_storage() [1/3]

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

Definition at line 589 of file flow_graph.h.

591  : receiver<continue_msg>() {
592  my_predecessor_count = my_initial_predecessor_count = src.my_initial_predecessor_count;

◆ args_storage() [2/3]

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

Definition at line 594 of file flow_graph.h.

598 {

◆ args_storage() [3/3]

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

Definition at line 596 of file flow_graph.h.

598 {

Member Function Documentation

◆ clone()

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

◆ do_try_put() [1/2]

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
template<int N>
bool tbb::flow::interface10::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 498 of file flow_graph.h.

511  {

◆ do_try_put() [2/2]

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
template<int... S>
bool tbb::flow::interface10::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 505 of file flow_graph.h.

511  {

◆ enqueue()

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
void tbb::flow::interface10::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::interface10::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage_base.

Definition at line 598 of file flow_graph.h.

598  {
599  spin_mutex::scoped_lock l(my_mutex);
600  ++my_predecessor_count;
601  return true;
602  }
603 
605 
608  bool remove_predecessor( predecessor_type & ) __TBB_override {
609  spin_mutex::scoped_lock l(my_mutex);
610  --my_predecessor_count;
611  return true;
612  }
613 
614 #if TBB_DEPRECATED_FLOW_NODE_EXTRACTION
615  typedef internal::edge_container<predecessor_type> built_predecessors_type;
616  typedef built_predecessors_type::edge_list_type predecessor_list_type;
617  built_predecessors_type &built_predecessors() __TBB_override { return my_built_predecessors; }
618 
#define __TBB_override
Definition: tbb_stddef.h:244
friend class scoped_lock
Definition: spin_mutex.h:180

◆ make_run_finalize_func()

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

◆ send()

template<typename... Ports, typename JP , typename StreamFactory >
template<typename... Args>
void tbb::flow::interface10::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::interface10::streaming_node< tuple< Ports... >, JP, StreamFactory >::args_storage< Args >::my_args_pack
private

Definition at line 633 of file flow_graph.h.


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

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