Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
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 priority_queue_node | class_type |
typedef receiver< input_type >::predecessor_type | predecessor_type |
typedef sender< output_type >::successor_type | successor_type |
![]() | |
typedef T | input_type |
typedef T | output_type |
typedef receiver< input_type >::predecessor_type | predecessor_type |
typedef sender< output_type >::successor_type | successor_type |
typedef buffer_node< T, cache_aligned_allocator< T > > | class_type |
![]() | |
enum | buffer_item_state |
typedef T | item_type |
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 |
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 cache_aligned_allocator< T > ::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 |
Forwards messages in priority order.
Definition at line 2373 of file flow_graph.h.
typedef buffer_node<T,A> tbb::flow::interface11::priority_queue_node< T, Compare, A >::base_type |
Definition at line 2377 of file flow_graph.h.
typedef priority_queue_node tbb::flow::interface11::priority_queue_node< T, Compare, A >::class_type |
Definition at line 2378 of file flow_graph.h.
typedef T tbb::flow::interface11::priority_queue_node< T, Compare, A >::input_type |
Definition at line 2375 of file flow_graph.h.
|
protected |
Definition at line 2419 of file flow_graph.h.
typedef T tbb::flow::interface11::priority_queue_node< T, Compare, A >::output_type |
Definition at line 2376 of file flow_graph.h.
typedef receiver<input_type>::predecessor_type tbb::flow::interface11::priority_queue_node< T, Compare, A >::predecessor_type |
Definition at line 2379 of file flow_graph.h.
|
protected |
Definition at line 2420 of file flow_graph.h.
|
protected |
Definition at line 2418 of file flow_graph.h.
typedef sender<output_type>::successor_type tbb::flow::interface11::priority_queue_node< T, Compare, A >::successor_type |
Definition at line 2380 of file flow_graph.h.
|
inlineexplicit |
Constructor.
Definition at line 2383 of file flow_graph.h.
References CODEPTR, tbb::internal::fgt_node(), and tbb::flow::interface11::graph_node::my_graph.
|
inline |
Copy constructor.
Definition at line 2399 of file flow_graph.h.
References CODEPTR, tbb::internal::fgt_node(), and tbb::flow::interface11::graph_node::my_graph.
|
inlineprotected |
Definition at line 2427 of file flow_graph.h.
References tbb::flow::interface11::buffer_node< T, cache_aligned_allocator< T > >::handle_operations_impl().
|
inlineprivate |
Definition at line 2549 of file flow_graph.h.
References tbb::flow::interface11::priority_queue_node< T, Compare, A >::compare, internal::item_buffer< T, cache_aligned_allocator< T > >::fetch_item(), internal::item_buffer< T, cache_aligned_allocator< T > >::get_my_item(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::mark, internal::item_buffer< T, cache_aligned_allocator< T > >::move_item(), internal::item_buffer< T, cache_aligned_allocator< T > >::my_tail, parent, internal::item_buffer< T, cache_aligned_allocator< T > >::place_item(), and void.
Referenced by tbb::flow::interface11::priority_queue_node< T, Compare, A >::order().
|
inlineprotected |
Definition at line 2463 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), internal::reservable_item_buffer< T, cache_aligned_allocator< T > >::my_reserved, tbb::flow::interface11::priority_queue_node< T, Compare, A >::reserved_item, and internal::SUCCEEDED.
|
inlineprotected |
Tries to forward valid items to successors.
Definition at line 2423 of file flow_graph.h.
References tbb::flow::interface11::buffer_node< T, cache_aligned_allocator< T > >::internal_forward_task_impl().
|
inlineprotected |
Definition at line 2437 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), internal::FAILED, internal::reservable_item_buffer< T, cache_aligned_allocator< T > >::my_reserved, internal::item_buffer< T, cache_aligned_allocator< T > >::my_tail, tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio_pop(), and internal::SUCCEEDED.
|
inlineprotected |
Definition at line 2431 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio_push(), and internal::SUCCEEDED.
|
inlineprotected |
Definition at line 2469 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), internal::reservable_item_buffer< T, cache_aligned_allocator< T > >::my_reserved, tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio_push(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::reserved_item, and internal::SUCCEEDED.
|
inlineprotected |
Definition at line 2451 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), internal::FAILED, internal::reservable_item_buffer< T, cache_aligned_allocator< T > >::my_reserved, internal::item_buffer< T, cache_aligned_allocator< T > >::my_tail, tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio_pop(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::reserved_item, and internal::SUCCEEDED.
|
inlineprivate |
Definition at line 2484 of file flow_graph.h.
References internal::item_buffer< T, cache_aligned_allocator< T > >::my_tail.
|
inlineprivate |
Definition at line 2479 of file flow_graph.h.
References __TBB_ASSERT, tbb::flow::interface11::priority_queue_node< T, Compare, A >::heapify(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::mark, and internal::item_buffer< T, cache_aligned_allocator< T > >::my_tail.
|
inlineprivate |
Definition at line 2544 of file flow_graph.h.
References internal::item_buffer< T, cache_aligned_allocator< T > >::get_my_item(), internal::item_buffer< T, cache_aligned_allocator< T > >::my_tail, and tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio_use_tail().
Referenced by tbb::flow::interface11::priority_queue_node< T, Compare, A >::internal_pop(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::internal_reserve(), and tbb::flow::interface11::priority_queue_node< T, Compare, A >::try_put_and_add_task().
|
inlineprivate |
Definition at line 2522 of file flow_graph.h.
References __TBB_ASSERT, internal::item_buffer< T, cache_aligned_allocator< T > >::destroy_item(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::mark, internal::item_buffer< T, cache_aligned_allocator< T > >::move_item(), internal::item_buffer< T, cache_aligned_allocator< T > >::my_item_valid(), internal::item_buffer< T, cache_aligned_allocator< T > >::my_tail, tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio_use_tail(), and tbb::flow::interface11::priority_queue_node< T, Compare, A >::reheap().
Referenced by tbb::flow::interface11::priority_queue_node< T, Compare, A >::internal_pop(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::internal_reserve(), and tbb::flow::interface11::priority_queue_node< T, Compare, A >::try_put_and_add_task().
|
inlineprivate |
Definition at line 2511 of file flow_graph.h.
References __TBB_ASSERT, internal::item_buffer< T, cache_aligned_allocator< T > >::grow_my_array(), internal::item_buffer< T, cache_aligned_allocator< T > >::my_array_size, internal::item_buffer< T, cache_aligned_allocator< T > >::my_tail, internal::item_buffer< T, cache_aligned_allocator< T > >::place_item(), and void.
Referenced by tbb::flow::interface11::priority_queue_node< T, Compare, A >::internal_push(), and tbb::flow::interface11::priority_queue_node< T, Compare, A >::internal_release().
|
inlineprivate |
Definition at line 2505 of file flow_graph.h.
References __TBB_ASSERT, tbb::flow::interface11::priority_queue_node< T, Compare, A >::compare, internal::item_buffer< T, cache_aligned_allocator< T > >::get_my_item(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::mark, and internal::item_buffer< T, cache_aligned_allocator< T > >::my_tail.
Referenced by tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio(), and tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio_pop().
|
inlineprivate |
Definition at line 2571 of file flow_graph.h.
References tbb::flow::interface11::priority_queue_node< T, Compare, A >::compare, internal::item_buffer< T, cache_aligned_allocator< T > >::get_my_item(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::mark, and internal::item_buffer< T, cache_aligned_allocator< T > >::swap_items().
Referenced by tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio_pop().
|
inlineprotectedvirtual |
Implements tbb::flow::interface11::graph_node.
Definition at line 2413 of file flow_graph.h.
References tbb::flow::interface11::priority_queue_node< T, Compare, A >::mark, and tbb::flow::interface11::buffer_node< T, A >::reset_node().
|
inlineprivate |
Definition at line 2488 of file flow_graph.h.
References tbb::flow::interface11::combine_tasks(), tbb::flow::interface11::buffer_node< T, cache_aligned_allocator< T > >::graph_reference(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio(), and tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio_pop().
|
friend |
Definition at line 2477 of file flow_graph.h.
|
private |
|
private |
Definition at line 2500 of file flow_graph.h.
Referenced by tbb::flow::interface11::priority_queue_node< T, Compare, A >::heapify(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::order(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio_pop(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::prio_use_tail(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::reheap(), and tbb::flow::interface11::priority_queue_node< T, Compare, A >::reset_node().
|
private |
Definition at line 2502 of file flow_graph.h.
Referenced by tbb::flow::interface11::priority_queue_node< T, Compare, A >::internal_consume(), tbb::flow::interface11::priority_queue_node< T, Compare, A >::internal_release(), and tbb::flow::interface11::priority_queue_node< T, Compare, A >::internal_reserve().