Implements async node. More...
#include <flow_graph.h>
Classes | |
struct | try_put_functor |
Public Types | |
typedef Input | input_type |
typedef Output | output_type |
typedef sender< input_type > | predecessor_type |
typedef receiver< output_type > | successor_type |
typedef internal::async_gateway < output_type > | async_gateway_type |
typedef internal::edge_container < successor_type > | built_successors_type |
interface to record edges for traversal & deletion | |
typedef built_successors_type::edge_list_type | successor_list_type |
![]() | |
typedef Input | input_type |
typedef null_type | output_type |
typedef internal::wrap_tuple_elements < N, internal::multifunction_output, tuple< Output > >::type | output_ports_type |
typedef internal::multifunction_input < input_type, output_ports_type, Allocator > | fInput_type |
typedef internal::function_input_queue < input_type, Allocator > | input_queue_type |
![]() | |
typedef Output | output_type |
![]() | |
typedef Output | output_type |
The output type of this sender. | |
typedef receiver< Output > | successor_type |
The successor type for this node. | |
typedef internal::edge_container < successor_type > | built_successors_type |
interface to record edges for traversal & deletion | |
typedef built_successors_type::edge_list_type | successor_list_type |
Public Member Functions | |
template<typename Body > | |
async_node (graph &g, size_t concurrency, Body body) | |
async_node (const async_node &other) | |
async_gateway_type & | async_gateway () |
bool | async_try_put (const output_type &i) |
Implements async_gateway::async_try_put for an external activity to submit a message to FG. | |
void | async_reserve () |
Increment reference count of graph to prevent premature return from wait_for_all. | |
void | async_commit () |
Decrement reference count of graph to allow return from wait_for_all. | |
void | set_name (const char *name) |
bool | register_successor (successor_type &r) |
Add a new successor to this node. | |
bool | remove_successor (successor_type &r) |
Removes a successor from this node. | |
template<typename Body > | |
Body | copy_function_object () |
built_successors_type & | built_successors () |
void | internal_add_built_successor (successor_type &r) |
void | internal_delete_built_successor (successor_type &r) |
void | copy_successors (successor_list_type &l) |
size_t | successor_count () |
![]() | |
multifunction_node (graph &g, size_t concurrency, Body body) | |
multifunction_node (const multifunction_node &other) | |
void | set_name (const char *name) |
void | extract () |
![]() | |
graph_node (graph &g) | |
![]() | |
virtual bool | register_successor (successor_type &r)=0 |
Add a new successor to this node. | |
virtual bool | remove_successor (successor_type &r)=0 |
Removes a successor from this node. | |
virtual bool | try_get (Output &) |
Request an item from the sender. | |
virtual bool | try_reserve (Output &) |
Reserves an item in the sender. | |
virtual bool | try_release () |
Releases the reserved item. | |
virtual bool | try_consume () |
Consumes the reserved item. | |
virtual void | internal_add_built_successor (successor_type &)=0 |
virtual void | internal_delete_built_successor (successor_type &)=0 |
Protected Types | |
typedef multifunction_node < Input, tuple< Output > , Policy, Allocator > | base_type |
typedef internal::multifunction_input < Input, typename base_type::output_ports_type, Allocator > | mfn_input_type |
Protected Member Functions | |
void | reset_node (reset_flags f) |
![]() | |
void | reset_node (reset_flags f) |
Additional Inherited Members | |
![]() | |
graph & | my_graph |
graph_node * | next |
graph_node * | prev |
![]() | |
static const int | N |
Implements async node.