Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Forwards messages in priority order. More...
#include <flow_graph.h>
Public Member Functions | |
priority_queue_node (graph &g) | |
Constructor. More... | |
priority_queue_node (const priority_queue_node &src) | |
Copy constructor. More... | |
![]() | |
buffer_node (graph &g) | |
Constructor. More... | |
buffer_node (const buffer_node &src) | |
Copy constructor. More... | |
bool | register_successor (successor_type &r) __TBB_override |
Adds a new successor. More... | |
bool | remove_successor (successor_type &r) __TBB_override |
Removes a successor. More... | |
bool | try_get (T &v) __TBB_override |
Request an item from the buffer_node. More... | |
bool | try_reserve (T &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... | |
![]() | |
graph_node (graph &g) | |
virtual | ~graph_node () |
![]() | |
reservable_item_buffer () | |
void | reset () |
![]() | |
item_buffer () | |
Constructor. More... | |
~item_buffer () | |
void | reset () |
![]() | |
bool | try_put (const typename internal::async_helpers< T >::filtered_type &t) |
Put an item to the receiver. More... | |
bool | try_put (const typename internal::async_helpers< T >::async_type &t) |
![]() | |
virtual | ~untyped_receiver () |
Destructor. More... | |
template<typename X > | |
bool | try_put (const X &t) |
Put an item to the receiver. More... | |
virtual bool | register_predecessor (predecessor_type &) |
Add a predecessor to the node. More... | |
virtual bool | remove_predecessor (predecessor_type &) |
Remove a predecessor from the node. More... | |
![]() | |
virtual | ~untyped_sender () |
Protected Types | |
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 } |
typedef size_t | size_type |
typedef internal::aggregating_functor< class_type, buffer_operation > | handler_type |
![]() | |
typedef size_t | size_type |
typedef aligned_pair< item_type, buffer_item_state >::type | buffer_item_type |
typedef A::template rebind< buffer_item_type >::other | allocator_type |
Private Member Functions | |
void | order () |
bool | is_item_valid () |
void | try_put_and_add_task (task *&last_task) |
bool | prio_use_tail () |
void | prio_push (const T &src) |
void | prio_pop () |
const T & | prio () |
void | heapify () |
void | reheap () |
Private Attributes | |
Compare | compare |
size_type | mark |
input_type | reserved_item |
Friends | |
template<typename , typename > | |
class | buffer_node |
Additional Inherited Members | |
![]() | |
internal::round_robin_cache< T, null_rw_mutex > | my_successors |
bool | forwarder_busy |
internal::aggregator< handler_type, buffer_operation > | my_aggregator |
![]() | |
graph & | my_graph |
graph_node * | next |
graph_node * | prev |
![]() | |
bool | my_reserved |
![]() | |
buffer_item_type * | my_array |
size_type | my_array_size |
size_type | my_head |
size_type | my_tail |
![]() | |
static const size_type | initial_buffer_size = 4 |
Forwards messages in priority order.
Definition at line 2190 of file flow_graph.h.
typedef buffer_node<T,A> tbb::flow::interface10::priority_queue_node< T, Compare, A >::base_type |
Definition at line 2194 of file flow_graph.h.
typedef priority_queue_node tbb::flow::interface10::priority_queue_node< T, Compare, A >::class_type |
Definition at line 2195 of file flow_graph.h.
typedef T tbb::flow::interface10::priority_queue_node< T, Compare, A >::input_type |
Definition at line 2192 of file flow_graph.h.
|
protected |
Definition at line 2227 of file flow_graph.h.
typedef T tbb::flow::interface10::priority_queue_node< T, Compare, A >::output_type |
Definition at line 2193 of file flow_graph.h.
typedef receiver<input_type>::predecessor_type tbb::flow::interface10::priority_queue_node< T, Compare, A >::predecessor_type |
Definition at line 2196 of file flow_graph.h.
|
protected |
Definition at line 2228 of file flow_graph.h.
|
protected |
Definition at line 2226 of file flow_graph.h.
typedef sender<output_type>::successor_type tbb::flow::interface10::priority_queue_node< T, Compare, A >::successor_type |
Definition at line 2197 of file flow_graph.h.
|
inlineexplicit |
Constructor.
Definition at line 2200 of file flow_graph.h.
References tbb::internal::fgt_node(), and tbb::flow::interface10::graph_node::my_graph.
|
inline |
Copy constructor.
Definition at line 2207 of file flow_graph.h.
References tbb::internal::fgt_node(), and tbb::flow::interface10::graph_node::my_graph.
|
inlineprotectedvirtual |
Reimplemented from tbb::flow::interface10::buffer_node< T, A >.
Definition at line 2235 of file flow_graph.h.
References tbb::flow::interface10::buffer_node< T, A >::handle_operations_impl().
|
inlineprivate |
Definition at line 2357 of file flow_graph.h.
References tbb::flow::interface10::priority_queue_node< T, Compare, A >::compare, tbb::flow::interface10::internal::item_buffer< T, A >::fetch_item(), tbb::flow::interface10::internal::item_buffer< T, A >::get_my_item(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::mark, tbb::flow::interface10::internal::item_buffer< T, A >::move_item(), tbb::flow::interface10::internal::item_buffer< T, A >::my_tail, parent, tbb::flow::interface10::internal::item_buffer< T, A >::place_item(), and void.
Referenced by tbb::flow::interface10::priority_queue_node< T, Compare, A >::order().
|
inlineprotectedvirtual |
Reimplemented from tbb::flow::interface10::buffer_node< T, A >.
Definition at line 2271 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::reserved_item, and tbb::flow::interface10::internal::SUCCEEDED.
|
inlineprotectedvirtual |
Tries to forward valid items to successors.
Reimplemented from tbb::flow::interface10::buffer_node< T, A >.
Definition at line 2231 of file flow_graph.h.
References tbb::flow::interface10::buffer_node< T, A >::internal_forward_task_impl().
|
inlineprotectedvirtual |
Reimplemented from tbb::flow::interface10::buffer_node< T, A >.
Definition at line 2245 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), tbb::flow::interface10::internal::FAILED, tbb::flow::interface10::internal::item_buffer< T, A >::my_tail, tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio_pop(), and tbb::flow::interface10::internal::SUCCEEDED.
|
inlineprotectedvirtual |
Reimplemented from tbb::flow::interface10::buffer_node< T, A >.
Definition at line 2239 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio_push(), and tbb::flow::interface10::internal::SUCCEEDED.
|
inlineprotectedvirtual |
Reimplemented from tbb::flow::interface10::buffer_node< T, A >.
Definition at line 2277 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio_push(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::reserved_item, and tbb::flow::interface10::internal::SUCCEEDED.
|
inlineprotectedvirtual |
Reimplemented from tbb::flow::interface10::buffer_node< T, A >.
Definition at line 2259 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), tbb::flow::interface10::internal::FAILED, tbb::flow::interface10::internal::item_buffer< T, A >::my_tail, tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio_pop(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::reserved_item, and tbb::flow::interface10::internal::SUCCEEDED.
|
inlineprivate |
Definition at line 2292 of file flow_graph.h.
References tbb::flow::interface10::internal::item_buffer< T, A >::my_tail.
|
inlineprivate |
Definition at line 2287 of file flow_graph.h.
References __TBB_ASSERT, tbb::flow::interface10::priority_queue_node< T, Compare, A >::heapify(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::mark, and tbb::flow::interface10::internal::item_buffer< T, A >::my_tail.
|
inlineprivate |
Definition at line 2352 of file flow_graph.h.
References tbb::flow::interface10::internal::item_buffer< T, A >::get_my_item(), tbb::flow::interface10::internal::item_buffer< T, A >::my_tail, and tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio_use_tail().
Referenced by tbb::flow::interface10::priority_queue_node< T, Compare, A >::internal_pop(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::internal_reserve(), and tbb::flow::interface10::priority_queue_node< T, Compare, A >::try_put_and_add_task().
|
inlineprivate |
Definition at line 2330 of file flow_graph.h.
References __TBB_ASSERT, tbb::flow::interface10::internal::item_buffer< T, A >::destroy_item(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::mark, tbb::flow::interface10::internal::item_buffer< T, A >::move_item(), tbb::flow::interface10::internal::item_buffer< T, A >::my_item_valid(), tbb::flow::interface10::internal::item_buffer< T, A >::my_tail, tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio_use_tail(), and tbb::flow::interface10::priority_queue_node< T, Compare, A >::reheap().
Referenced by tbb::flow::interface10::priority_queue_node< T, Compare, A >::internal_pop(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::internal_reserve(), and tbb::flow::interface10::priority_queue_node< T, Compare, A >::try_put_and_add_task().
|
inlineprivate |
Definition at line 2319 of file flow_graph.h.
References __TBB_ASSERT, tbb::flow::interface10::internal::item_buffer< T, A >::grow_my_array(), tbb::flow::interface10::internal::item_buffer< T, A >::my_array_size, tbb::flow::interface10::internal::item_buffer< T, A >::my_tail, tbb::flow::interface10::internal::item_buffer< T, A >::place_item(), and void.
Referenced by tbb::flow::interface10::priority_queue_node< T, Compare, A >::internal_push(), and tbb::flow::interface10::priority_queue_node< T, Compare, A >::internal_release().
|
inlineprivate |
Definition at line 2313 of file flow_graph.h.
References __TBB_ASSERT, tbb::flow::interface10::priority_queue_node< T, Compare, A >::compare, tbb::flow::interface10::internal::item_buffer< T, A >::get_my_item(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::mark, and tbb::flow::interface10::internal::item_buffer< T, A >::my_tail.
Referenced by tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio(), and tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio_pop().
|
inlineprivate |
Definition at line 2379 of file flow_graph.h.
References tbb::flow::interface10::priority_queue_node< T, Compare, A >::compare, tbb::flow::interface10::internal::item_buffer< T, A >::get_my_item(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::mark, and tbb::flow::interface10::internal::item_buffer< T, A >::swap_items().
Referenced by tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio_pop().
|
inlineprotectedvirtual |
Reimplemented from tbb::flow::interface10::buffer_node< T, A >.
Definition at line 2221 of file flow_graph.h.
References tbb::flow::interface10::priority_queue_node< T, Compare, A >::mark, and tbb::flow::interface10::buffer_node< T, A >::reset_node().
|
inlineprivate |
Definition at line 2296 of file flow_graph.h.
References tbb::flow::interface10::combine_tasks(), tbb::flow::interface10::buffer_node< T, A >::graph_reference(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio_pop(), and tbb::flow::interface10::internal::round_robin_cache< T, M >::try_put_task().
|
friend |
Definition at line 2285 of file flow_graph.h.
|
private |
|
private |
Definition at line 2308 of file flow_graph.h.
Referenced by tbb::flow::interface10::priority_queue_node< T, Compare, A >::heapify(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::order(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio_pop(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::prio_use_tail(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::reheap(), and tbb::flow::interface10::priority_queue_node< T, Compare, A >::reset_node().
|
private |
Definition at line 2310 of file flow_graph.h.
Referenced by tbb::flow::interface10::priority_queue_node< T, Compare, A >::internal_consume(), tbb::flow::interface10::priority_queue_node< T, Compare, A >::internal_release(), and tbb::flow::interface10::priority_queue_node< T, Compare, A >::internal_reserve().