Public Types | |
typedef T | input_type |
typedef T | output_type |
typedef sender< input_type > | predecessor_type |
typedef receiver< output_type > | successor_type |
typedef receiver< input_type > ::built_predecessors_type | built_predecessors_type |
typedef sender< output_type > ::built_successors_type | built_successors_type |
typedef receiver< input_type > ::predecessor_list_type | predecessor_list_type |
typedef sender< output_type > ::successor_list_type | successor_list_type |
![]() | |
typedef T | input_type |
The input type of this receiver. | |
typedef sender< T > | predecessor_type |
The predecessor type for this node. | |
typedef internal::edge_container < predecessor_type > | built_predecessors_type |
typedef built_predecessors_type::edge_list_type | predecessor_list_type |
![]() | |
typedef T | output_type |
The output type of this sender. | |
typedef receiver< T > | 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 | |
overwrite_node (graph &g) | |
overwrite_node (const overwrite_node &src) | |
void | set_name (const char *name) |
bool | register_successor (successor_type &s) |
Add a new successor to this node. | |
bool | remove_successor (successor_type &s) |
Removes a successor from this node. | |
built_predecessors_type & | built_predecessors () |
built_successors_type & | built_successors () |
void | internal_add_built_successor (successor_type &s) |
void | internal_delete_built_successor (successor_type &s) |
size_t | successor_count () |
void | copy_successors (successor_list_type &v) |
void | internal_add_built_predecessor (predecessor_type &p) |
void | internal_delete_built_predecessor (predecessor_type &p) |
size_t | predecessor_count () |
void | copy_predecessors (predecessor_list_type &v) |
void | extract () |
bool | try_get (input_type &v) |
Request an item from the sender. | |
bool | is_valid () |
void | clear () |
![]() | |
graph_node (graph &g) | |
![]() | |
virtual | ~receiver () |
Destructor. | |
bool | try_put (const T &t) |
Put an item to the receiver. | |
virtual bool | register_predecessor (predecessor_type &) |
Add a predecessor to the node. | |
virtual bool | remove_predecessor (predecessor_type &) |
Remove a predecessor from the node. | |
virtual void | copy_predecessors (predecessor_list_type &)=0 |
![]() | |
virtual bool | try_reserve (T &) |
Reserves an item in the sender. | |
virtual bool | try_release () |
Releases the reserved item. | |
virtual bool | try_consume () |
Consumes the reserved item. | |
Protected Member Functions | |
task * | try_put_task (const input_type &v) |
void | reset_receiver (reset_flags) |
void | reset_node (reset_flags f) |
![]() | |
virtual bool | is_continue_receiver () |
Protected Attributes | |
spin_mutex | my_mutex |
internal::broadcast_cache < input_type, null_rw_mutex > | my_successors |
internal::edge_container < predecessor_type > | my_built_predecessors |
input_type | my_buffer |
bool | my_buffer_is_valid |
![]() | |
graph & | my_graph |
graph_node * | next |
graph_node * | prev |