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 489 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 628 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 490 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 585 of file flow_graph.h.

589  : receiver<continue_msg>() {

◆ 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 590 of file flow_graph.h.

596 {

◆ 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 592 of file flow_graph.h.

596 {

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

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

Definition at line 622 of file flow_graph.h.

622  {
623  spin_mutex::scoped_lock l(my_mutex);
624  my_built_predecessors.delete_edge(s);
625  }
friend class scoped_lock
Definition: spin_mutex.h:176
void const char const char int ITT_FORMAT __itt_group_sync s

References tbb::flow::interface10::continue_receiver::my_mutex, and s.

◆ 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 494 of file flow_graph.h.

494  { return false; }
495 
496 #if TBB_DEPRECATED_FLOW_NODE_EXTRACTION
497  typedef typename internal::edge_container<successor_type> built_successors_type;

◆ 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 501 of file flow_graph.h.

510  {

◆ 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 594 of file flow_graph.h.

596  {
597  spin_mutex::scoped_lock l(my_mutex);
598  ++my_predecessor_count;
599  return true;
600  }
601 
603 
606  bool remove_predecessor( predecessor_type & ) __TBB_override {
607  spin_mutex::scoped_lock l(my_mutex);
608  --my_predecessor_count;
609  return true;
610  }
611 
612 #if TBB_DEPRECATED_FLOW_NODE_EXTRACTION
613  typedef internal::edge_container<predecessor_type> built_predecessors_type;
614  typedef built_predecessors_type::edge_list_type predecessor_list_type;
friend class scoped_lock
Definition: spin_mutex.h:176
#define __TBB_override
Definition: tbb_stddef.h:240

◆ 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

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

Definition at line 616 of file flow_graph.h.

617  {
618  spin_mutex::scoped_lock l(my_mutex);
619  my_built_predecessors.add_edge( s );
620  }
friend class scoped_lock
Definition: spin_mutex.h:176
void const char const char int ITT_FORMAT __itt_group_sync s

References tbb::flow::interface10::continue_receiver::my_mutex, and s.

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