Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
The two-phase join port. More...
#include <_flow_graph_join_impl.h>
Classes | |
class | reserving_port_operation |
Public Types | |
typedef T | input_type |
typedef receiver< input_type >::predecessor_type | predecessor_type |
Public Member Functions | |
reserving_port () | |
Constructor. More... | |
reserving_port (const reserving_port &) | |
void | set_join_node_pointer (forwarding_base *join) |
bool | register_predecessor (predecessor_type &src) __TBB_override |
Add a predecessor. More... | |
bool | remove_predecessor (predecessor_type &src) __TBB_override |
Remove a predecessor. More... | |
bool | reserve (T &v) |
Reserve an item from the port. More... | |
void | release () |
Release the port. More... | |
void | consume () |
Complete use of the port. More... | |
void | reset_receiver (reset_flags f) __TBB_override |
Protected Member Functions | |
task * | try_put_task (const T &) __TBB_override |
graph & | graph_reference () const __TBB_override |
Private Types | |
enum | op_type { reg_pred, rem_pred, res_item, rel_res, con_res } |
typedef reserving_port< T > | class_type |
typedef internal::aggregating_functor< class_type, reserving_port_operation > | handler_type |
Private Member Functions | |
void | handle_operations (reserving_port_operation *op_list) |
Private Attributes | |
aggregator< handler_type, reserving_port_operation > | my_aggregator |
forwarding_base * | my_join |
reservable_predecessor_cache< T, null_mutex > | my_predecessors |
bool | reserved |
Friends | |
class | internal::aggregating_functor< class_type, reserving_port_operation > |
template<typename R , typename B > | |
class | run_and_put_task |
template<typename X , typename Y > | |
class | internal::broadcast_cache |
template<typename X , typename Y > | |
class | internal::round_robin_cache |
The two-phase join port.
Definition at line 209 of file _flow_graph_join_impl.h.
|
private |
Definition at line 224 of file _flow_graph_join_impl.h.
|
private |
Definition at line 244 of file _flow_graph_join_impl.h.
typedef T internal::reserving_port< T >::input_type |
Definition at line 211 of file _flow_graph_join_impl.h.
typedef receiver<input_type>::predecessor_type internal::reserving_port< T >::predecessor_type |
Definition at line 212 of file _flow_graph_join_impl.h.
|
private |
Enumerator | |
---|---|
reg_pred | |
rem_pred | |
res_item | |
rel_res | |
con_res |
Definition at line 219 of file _flow_graph_join_impl.h.
|
inline |
Constructor.
Definition at line 329 of file _flow_graph_join_impl.h.
References internal::reserving_port< T >::my_aggregator, internal::reserving_port< T >::my_join, internal::reserving_port< T >::my_predecessors, and internal::predecessor_cache< T, M >::set_owner().
|
inline |
Definition at line 336 of file _flow_graph_join_impl.h.
References internal::reserving_port< T >::my_aggregator, internal::reserving_port< T >::my_join, internal::reserving_port< T >::my_predecessors, internal::reserving_port< T >::reserved, and internal::predecessor_cache< T, M >::set_owner().
|
inline |
Complete use of the port.
Definition at line 375 of file _flow_graph_join_impl.h.
References internal::reserving_port< T >::con_res, and internal::reserving_port< T >::my_aggregator.
|
inlineprotected |
Definition at line 322 of file _flow_graph_join_impl.h.
References internal::forwarding_base::graph_ref, and internal::reserving_port< T >::my_join.
|
inlineprivate |
Definition at line 248 of file _flow_graph_join_impl.h.
References tbb::internal::__TBB_store_with_release(), internal::node_cache< T, M >::add(), internal::reserving_port< T >::con_res, internal::forwarding_base::decrement_port_count(), internal::node_cache< T, M >::empty(), internal::FAILED, internal::forwarding_base::increment_port_count(), internal::reserving_port< T >::reserving_port_operation::my_arg, internal::reserving_port< T >::my_join, internal::reserving_port< T >::reserving_port_operation::my_pred, internal::reserving_port< T >::my_predecessors, tbb::interface6::internal::aggregated_operation< Derived >::next, internal::reserving_port< T >::reg_pred, internal::reserving_port< T >::rel_res, internal::reserving_port< T >::rem_pred, internal::node_cache< T, M >::remove(), internal::reserving_port< T >::res_item, internal::reserving_port< T >::reserved, tbb::interface6::internal::aggregated_operation< Derived >::status, internal::SUCCEEDED, internal::reservable_predecessor_cache< T, M >::try_consume(), internal::reservable_predecessor_cache< T, M >::try_release(), internal::reservable_predecessor_cache< T, M >::try_reserve(), internal::reserving_port< T >::reserving_port_operation::type, and void.
|
inline |
Add a predecessor.
Definition at line 348 of file _flow_graph_join_impl.h.
References internal::reserving_port< T >::my_aggregator, internal::reserving_port< T >::reg_pred, tbb::interface6::internal::aggregated_operation< Derived >::status, and internal::SUCCEEDED.
|
inline |
Release the port.
Definition at line 369 of file _flow_graph_join_impl.h.
References internal::reserving_port< T >::my_aggregator, and internal::reserving_port< T >::rel_res.
|
inline |
Remove a predecessor.
Definition at line 355 of file _flow_graph_join_impl.h.
References internal::reserving_port< T >::my_aggregator, internal::reserving_port< T >::rem_pred, tbb::interface6::internal::aggregated_operation< Derived >::status, and internal::SUCCEEDED.
|
inline |
Reserve an item from the port.
Definition at line 362 of file _flow_graph_join_impl.h.
References internal::reserving_port< T >::my_aggregator, internal::reserving_port< T >::res_item, tbb::interface6::internal::aggregated_operation< Derived >::status, and internal::SUCCEEDED.
|
inline |
Definition at line 410 of file _flow_graph_join_impl.h.
References __TBB_ASSERT, internal::reservable_predecessor_cache< T, M >::clear(), internal::node_cache< T, M >::empty(), internal::reserving_port< T >::my_predecessors, internal::reserving_port< T >::reserved, internal::reservable_predecessor_cache< T, M >::reset(), and tbb::flow::interface11::rf_clear_edges.
|
inline |
Definition at line 343 of file _flow_graph_join_impl.h.
References internal::reserving_port< T >::my_join.
|
inlineprotected |
Definition at line 318 of file _flow_graph_join_impl.h.
|
friend |
Definition at line 245 of file _flow_graph_join_impl.h.
|
friend |
Definition at line 316 of file _flow_graph_join_impl.h.
|
friend |
Definition at line 317 of file _flow_graph_join_impl.h.
|
friend |
Definition at line 315 of file _flow_graph_join_impl.h.
|
private |
Definition at line 246 of file _flow_graph_join_impl.h.
Referenced by internal::reserving_port< T >::consume(), internal::reserving_port< T >::register_predecessor(), internal::reserving_port< T >::release(), internal::reserving_port< T >::remove_predecessor(), internal::reserving_port< T >::reserve(), and internal::reserving_port< T >::reserving_port().
|
private |
|
private |
Definition at line 424 of file _flow_graph_join_impl.h.
Referenced by internal::reserving_port< T >::handle_operations(), internal::reserving_port< T >::reserving_port(), and internal::reserving_port< T >::reset_receiver().
|
private |
Definition at line 425 of file _flow_graph_join_impl.h.
Referenced by internal::reserving_port< T >::handle_operations(), internal::reserving_port< T >::reserving_port(), and internal::reserving_port< T >::reset_receiver().