Forwards messages in priority order. More...
#include <flow_graph.h>
Public Types | |
typedef T | input_type |
typedef T | output_type |
typedef buffer_node< T, A > | base_type |
typedef sender< input_type > | predecessor_type |
typedef receiver< output_type > | successor_type |
![]() | |
typedef T | input_type |
typedef T | output_type |
typedef sender< input_type > | predecessor_type |
typedef receiver< output_type > | successor_type |
typedef buffer_node< T, A > | my_class |
typedef std::vector < predecessor_type * > | predecessor_vector_type |
typedef std::vector < successor_type * > | successor_vector_type |
![]() | |
typedef T | input_type |
The input type of this receiver. | |
typedef sender< T > | predecessor_type |
The predecessor type for this node. | |
![]() | |
typedef T | output_type |
The output type of this sender. | |
typedef receiver< T > | successor_type |
The successor type for this node. | |
Public Member Functions | |
priority_queue_node (graph &g) | |
Constructor. | |
priority_queue_node (const priority_queue_node &src) | |
Copy constructor. | |
void | set_name (const char *name) |
![]() | |
buffer_node (graph &g) | |
Constructor. | |
buffer_node (const buffer_node &src) | |
Copy constructor. | |
bool | register_successor (successor_type &r) |
Adds a new successor. More... | |
void | internal_add_built_successor (successor_type &r) |
interface to record edges for traversal & deletion | |
void | internal_delete_built_successor (successor_type &r) |
void | internal_add_built_predecessor (predecessor_type &p) |
void | internal_delete_built_predecessor (predecessor_type &p) |
size_t | predecessor_count () |
size_t | successor_count () |
void | copy_predecessors (predecessor_vector_type &v) |
void | copy_successors (successor_vector_type &v) |
bool | remove_successor (successor_type &r) |
Removes a successor. More... | |
bool | try_get (T &v) |
Request an item from the buffer_node. More... | |
bool | try_reserve (T &v) |
Reserves an item. More... | |
bool | try_release () |
Release a reserved item. More... | |
bool | try_consume () |
Consumes a reserved item. More... | |
![]() | |
graph_node (graph &g) | |
virtual void | extract (reset_flags f=rf_extract) |
![]() | |
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 (std::vector< predecessor_type * > &)=0 |
![]() | |
virtual void | copy_successors (std::vector< successor_type * > &)=0 |
Protected Types | |
enum | op_stat { WAIT =0, SUCCEEDED, FAILED } |
typedef buffer_node< T, A > ::size_type | size_type |
typedef buffer_node< T, A > ::item_type | item_type |
typedef buffer_node< T, A > ::buffer_operation | prio_operation |
![]() | |
enum | op_type { reg_succ, rem_succ, req_item, res_item, rel_res, con_res, put_item, try_fwd_task, add_blt_succ, del_blt_succ, add_blt_pred, del_blt_pred, blt_succ_cnt, blt_pred_cnt, blt_succ_cpy, blt_pred_cpy } |
enum | op_stat { WAIT =0, SUCCEEDED, FAILED } |
typedef size_t | size_type |
typedef internal::aggregating_functor < my_class, buffer_operation > | my_handler |
Protected Member Functions | |
void | reset (__TBB_PFG_RESET_ARG(reset_flags f)) |
void | handle_operations (prio_operation *op_list) |
void | internal_forward_task (prio_operation *op) |
Tries to forward valid items to successors. | |
void | internal_push (prio_operation *op) |
void | internal_pop (prio_operation *op) |
void | internal_reserve (prio_operation *op) |
void | internal_consume (prio_operation *op) |
void | internal_release (prio_operation *op) |
![]() | |
task * | grab_forwarding_task (buffer_operation &op_data) |
bool | enqueue_forwarding_task (buffer_operation &op_data) |
virtual task * | forward_task () |
This is executed by an enqueued task, the "forwarder". | |
virtual void | internal_reg_succ (buffer_operation *op) |
Register successor. | |
virtual void | internal_rem_succ (buffer_operation *op) |
Remove successor. | |
virtual void | internal_add_built_succ (buffer_operation *op) |
virtual void | internal_del_built_succ (buffer_operation *op) |
virtual void | internal_add_built_pred (buffer_operation *op) |
virtual void | internal_del_built_pred (buffer_operation *op) |
virtual void | internal_succ_cnt (buffer_operation *op) |
virtual void | internal_pred_cnt (buffer_operation *op) |
virtual void | internal_copy_succs (buffer_operation *op) |
virtual void | internal_copy_preds (buffer_operation *op) |
task * | try_put_task (const T &t) |
receive an item, return a task *if possible | |
void | reset (__TBB_PFG_RESET_ARG(reset_flags f)) |
void | reset_receiver (__TBB_PFG_RESET_ARG(reset_flags)) |
![]() | |
virtual void | reset (__TBB_PFG_RESET_ARG(reset_flags f=rf_reset_protocol))=0 |
![]() | |
virtual void | reset_receiver (__TBB_PFG_RESET_ARG(reset_flags f=rf_reset_protocol))=0 |
virtual bool | is_continue_receiver () |
Additional Inherited Members | |
![]() | |
internal::round_robin_cache< T, null_rw_mutex > | my_successors |
edge_container< predecessor_type > | my_built_predecessors |
bool | forwarder_busy |
internal::aggregator < my_handler, buffer_operation > | my_aggregator |
Forwards messages in priority order.