| 
    Intel(R) Threading Building Blocks Doxygen Documentation
    version 4.2.3
    
   | 
 
An executable node that acts as a source, i.e. it has no predecessors. More...
#include <flow_graph.h>
Public Types | |
| typedef Output | output_type | 
| The type of the output message, which is complete.  More... | |
| typedef sender< output_type >::successor_type | successor_type | 
| The type of successors of this node.  More... | |
| typedef null_type | input_type | 
  Public Types inherited from tbb::flow::interface11::internal::untyped_sender | |
| typedef untyped_receiver | successor_type | 
| The successor type for this node.  More... | |
Public Member Functions | |
| template<typename Body > | |
| __TBB_NOINLINE_SYM | input_node (graph &g, Body body) | 
| Constructor for a node with a successor.  More... | |
| __TBB_NOINLINE_SYM | input_node (const input_node &src) | 
| Copy constructor.  More... | |
| ~input_node () | |
| The destructor.  More... | |
| bool | register_successor (successor_type &r) __TBB_override | 
| Add a new successor to this node.  More... | |
| bool | remove_successor (successor_type &r) __TBB_override | 
| Removes a successor from this node.  More... | |
| bool | try_get (output_type &v) __TBB_override | 
| Request an item from the node.  More... | |
| bool | try_reserve (output_type &v) __TBB_override | 
| Reserves an item.  More... | |
| bool | try_release () __TBB_override | 
| Release a reserved item.  More... | |
| bool | try_consume () __TBB_override | 
| Consumes a reserved item.  More... | |
| void | activate () | 
| Activates a node that was created in the inactive state.  More... | |
| template<typename Body > | |
| Body | copy_function_object () | 
  Public Member Functions inherited from tbb::flow::interface11::graph_node | |
| graph_node (graph &g) | |
| virtual | ~graph_node () | 
  Public Member Functions inherited from tbb::flow::interface11::internal::untyped_sender | |
| virtual | ~untyped_sender () | 
Protected Member Functions | |
| void | reset_node (reset_flags f) __TBB_override | 
| resets the input_node to its initial state  More... | |
  Protected Member Functions inherited from tbb::flow::interface11::sender< Output > | |
| virtual bool | try_get_wrapper (void *p, bool is_async) __TBB_override | 
| virtual bool | try_reserve_wrapper (void *p, bool is_async) __TBB_override | 
  Protected Member Functions inherited from tbb::flow::interface11::internal::untyped_sender | |
| template<typename X > | |
| bool | try_get (X &t) | 
| Request an item from the sender.  More... | |
| template<typename X > | |
| bool | try_reserve (X &t) | 
| Reserves an item in the sender.  More... | |
Private Member Functions | |
| bool | try_reserve_apply_body (output_type &v) | 
| task * | create_put_task () | 
| void | spawn_put () | 
| Spawns a task that applies the body.  More... | |
| task * | apply_body_bypass () | 
| Applies the body. Returning SUCCESSFULLY_ENQUEUED okay; forward_task_bypass will handle it.  More... | |
Private Attributes | |
| spin_mutex | my_mutex | 
| bool | my_active | 
| internal::input_body< output_type > * | my_body | 
| internal::input_body< output_type > * | my_init_body | 
| internal::broadcast_cache< output_type > | my_successors | 
| bool | my_reserved | 
| bool | my_has_cached_item | 
| output_type | my_cached_item | 
Friends | |
| class | internal::source_task_bypass< input_node< output_type > > | 
Additional Inherited Members | |
  Public Attributes inherited from tbb::flow::interface11::sender< Output > | |
| __TBB_DEPRECATED typedef Output | output_type | 
| The output type of this sender.  More... | |
| __TBB_DEPRECATED typedef internal::async_helpers< Output >::filtered_type | filtered_type | 
  Protected Attributes inherited from tbb::flow::interface11::graph_node | |
| graph & | my_graph | 
| graph_node * | next | 
| graph_node * | prev | 
An executable node that acts as a source, i.e. it has no predecessors.
Definition at line 904 of file flow_graph.h.
| typedef null_type tbb::flow::interface11::input_node< Output >::input_type | 
Definition at line 913 of file flow_graph.h.
| typedef Output tbb::flow::interface11::input_node< Output >::output_type | 
The type of the output message, which is complete.
Definition at line 907 of file flow_graph.h.
| typedef sender<output_type>::successor_type tbb::flow::interface11::input_node< Output >::successor_type | 
The type of successors of this node.
Definition at line 910 of file flow_graph.h.
      
  | 
  inline | 
Constructor for a node with a successor.
Definition at line 922 of file flow_graph.h.
      
  | 
  inline | 
Copy constructor.
Definition at line 942 of file flow_graph.h.
      
  | 
  inline | 
The destructor.
Definition at line 954 of file flow_graph.h.
References tbb::flow::interface11::input_node< Output >::my_body, and tbb::flow::interface11::input_node< Output >::my_init_body.
      
  | 
  inline | 
Activates a node that was created in the inactive state.
Definition at line 1061 of file flow_graph.h.
      
  | 
  inlineprivate | 
Applies the body. Returning SUCCESSFULLY_ENQUEUED okay; forward_task_bypass will handle it.
Definition at line 1153 of file flow_graph.h.
References tbb::flow::interface11::input_node< Output >::my_successors, tbb::flow::interface11::input_node< Output >::try_consume(), tbb::flow::interface11::internal::broadcast_cache< T, M >::try_put_task(), tbb::flow::interface11::input_node< Output >::try_release(), and tbb::flow::interface11::input_node< Output >::try_reserve_apply_body().
      
  | 
  inline | 
Definition at line 1069 of file flow_graph.h.
      
  | 
  inlineprivate | 
Definition at line 1139 of file flow_graph.h.
References tbb::flow::interface11::graph_node::my_graph, and tbb::flow::interface10::graph::root_task().
Referenced by tbb::flow::interface11::input_node< Output >::spawn_put().
      
  | 
  inlinevirtual | 
Add a new successor to this node.
Implements tbb::flow::interface11::internal::untyped_sender.
Definition at line 963 of file flow_graph.h.
References lock, and tbb::flow::interface11::input_node< Output >::my_mutex.
      
  | 
  inlinevirtual | 
Removes a successor from this node.
Implements tbb::flow::interface11::internal::untyped_sender.
Definition at line 972 of file flow_graph.h.
      
  | 
  inlineprotectedvirtual | 
resets the input_node to its initial state
Implements tbb::flow::interface11::graph_node.
Definition at line 1086 of file flow_graph.h.
References tbb::flow::interface11::input_node< Output >::my_active, and tbb::flow::interface11::input_node< Output >::my_reserved.
      
  | 
  inlineprivate | 
Spawns a task that applies the body.
Definition at line 1145 of file flow_graph.h.
References tbb::flow::interface11::input_node< Output >::create_put_task(), tbb::flow::interface11::internal::is_graph_active(), tbb::flow::interface11::graph_node::my_graph, and tbb::flow::interface11::internal::spawn_in_graph_arena().
Referenced by tbb::flow::interface11::input_node< Output >::try_release().
      
  | 
  inlinevirtual | 
Consumes a reserved item.
Reimplemented from tbb::flow::interface11::internal::untyped_sender.
Definition at line 1049 of file flow_graph.h.
Referenced by tbb::flow::interface11::input_node< Output >::apply_body_bypass().
      
  | 
  inlinevirtual | 
Request an item from the node.
Reimplemented from tbb::flow::interface11::sender< Output >.
Definition at line 1004 of file flow_graph.h.
References lock, tbb::flow::interface11::input_node< Output >::my_has_cached_item, tbb::flow::interface11::input_node< Output >::my_mutex, and tbb::flow::interface11::input_node< Output >::my_reserved.
      
  | 
  inlinevirtual | 
Release a reserved item.
true = item has been released and so remains in sender, dest must request or reserve future items
Reimplemented from tbb::flow::interface11::internal::untyped_sender.
Definition at line 1039 of file flow_graph.h.
References __TBB_ASSERT, tbb::flow::interface11::internal::successor_cache< T, M >::empty(), lock, tbb::flow::interface11::input_node< Output >::my_has_cached_item, tbb::flow::interface11::input_node< Output >::my_mutex, tbb::flow::interface11::input_node< Output >::my_reserved, tbb::flow::interface11::input_node< Output >::my_successors, and tbb::flow::interface11::input_node< Output >::spawn_put().
Referenced by tbb::flow::interface11::input_node< Output >::apply_body_bypass().
      
  | 
  inlinevirtual | 
Reserves an item.
Reimplemented from tbb::flow::interface11::sender< Output >.
Definition at line 1022 of file flow_graph.h.
      
  | 
  inlineprivate | 
Definition at line 1110 of file flow_graph.h.
References tbb::internal::fgt_begin_body(), lock, tbb::flow::interface11::input_node< Output >::my_body, tbb::flow::interface11::input_node< Output >::my_cached_item, tbb::flow::interface11::input_node< Output >::my_has_cached_item, tbb::flow::interface11::input_node< Output >::my_mutex, and tbb::flow::interface11::input_node< Output >::my_reserved.
Referenced by tbb::flow::interface11::input_node< Output >::apply_body_bypass().
      
  | 
  friend | 
Definition at line 1151 of file flow_graph.h.
      
  | 
  private | 
Definition at line 1101 of file flow_graph.h.
Referenced by tbb::flow::interface11::input_node< Output >::reset_node().
      
  | 
  private | 
Definition at line 1102 of file flow_graph.h.
Referenced by tbb::flow::interface11::input_node< Output >::try_reserve_apply_body(), and tbb::flow::interface11::input_node< Output >::~input_node().
      
  | 
  private | 
Definition at line 1107 of file flow_graph.h.
Referenced by tbb::flow::interface11::input_node< Output >::try_reserve_apply_body().
      
  | 
  private | 
Definition at line 1106 of file flow_graph.h.
Referenced by tbb::flow::interface11::input_node< Output >::try_get(), tbb::flow::interface11::input_node< Output >::try_release(), and tbb::flow::interface11::input_node< Output >::try_reserve_apply_body().
      
  | 
  private | 
Definition at line 1103 of file flow_graph.h.
Referenced by tbb::flow::interface11::input_node< Output >::~input_node().
      
  | 
  private | 
Definition at line 1100 of file flow_graph.h.
Referenced by tbb::flow::interface11::input_node< Output >::register_successor(), tbb::flow::interface11::internal::join_node_FE< queueing, InputTuple, OutputTuple >::reset(), tbb::flow::interface11::input_node< Output >::try_get(), tbb::flow::interface11::input_node< Output >::try_release(), and tbb::flow::interface11::input_node< Output >::try_reserve_apply_body().
      
  | 
  private | 
Definition at line 1105 of file flow_graph.h.
Referenced by tbb::flow::interface11::input_node< Output >::reset_node(), tbb::flow::interface11::input_node< Output >::try_get(), tbb::flow::interface11::input_node< Output >::try_release(), and tbb::flow::interface11::input_node< Output >::try_reserve_apply_body().
      
  | 
  private | 
Definition at line 1104 of file flow_graph.h.
Referenced by tbb::flow::interface11::input_node< Output >::apply_body_bypass(), tbb::flow::interface11::internal::join_node_FE< queueing, InputTuple, OutputTuple >::decrement_port_count(), tbb::flow::interface11::internal::join_node_FE< queueing, InputTuple, OutputTuple >::reset(), and tbb::flow::interface11::input_node< Output >::try_release().