|
Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Forwards messages in FIFO order. More...
#include <flow_graph.h>
Public Types | |
| typedef T | input_type |
| typedef T | output_type |
| typedef receiver< input_type >::predecessor_type | predecessor_type |
| typedef sender< output_type >::successor_type | successor_type |
Public Types inherited from tbb::flow::interface11::buffer_node< T, __TBB_DEFAULT_NODE_ALLOCATOR(T) > | |
| 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, __TBB_DEFAULT_NODE_ALLOCATOR(T) > | class_type |
Public Types inherited from internal::item_buffer< T, cache_aligned_allocator< T > > | |
| enum | buffer_item_state |
| typedef T | item_type |
Public Types inherited from tbb::flow::interface11::internal::untyped_receiver | |
| typedef untyped_sender | predecessor_type |
| The predecessor type for this node. More... | |
Public Types inherited from tbb::flow::interface11::internal::untyped_sender | |
| typedef untyped_receiver | successor_type |
| The successor type for this node. More... | |
Public Member Functions | |
| __TBB_NOINLINE_SYM | queue_node (graph &g) |
| Constructor. More... | |
| __TBB_NOINLINE_SYM | queue_node (const queue_node &src) |
| Copy constructor. More... | |
Public Member Functions inherited from tbb::flow::interface11::buffer_node< T, __TBB_DEFAULT_NODE_ALLOCATOR(T) > | |
| __TBB_STATIC_ASSERT ((tbb::internal::is_same_type< __TBB_DEFAULT_NODE_ALLOCATOR(T), null_type >::value), "__TBB_DEFAULT_NODE_ALLOCATOR(T) template parameter for flow graph nodes is deprecated and will be removed. " "Specify TBB_DEPRECATED_FLOW_NODE_ALLOCATOR to temporary enable the deprecated interface.") | |
| __TBB_NOINLINE_SYM | buffer_node (graph &g) |
| Constructor. More... | |
| __TBB_NOINLINE_SYM | 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... | |
Public Member Functions inherited from tbb::flow::interface11::graph_node | |
| graph_node (graph &g) | |
| virtual | ~graph_node () |
Public Member Functions inherited from internal::reservable_item_buffer< T, cache_aligned_allocator< T > > | |
| reservable_item_buffer () | |
| void | reset () |
Public Member Functions inherited from internal::item_buffer< T, cache_aligned_allocator< T > > | |
| item_buffer () | |
| Constructor. More... | |
| ~item_buffer () | |
| void | reset () |
Public Member Functions inherited from tbb::flow::interface11::receiver< T > | |
| 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) |
Public Member Functions inherited from tbb::flow::interface11::internal::untyped_receiver | |
| 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... | |
Public Member Functions inherited from tbb::flow::interface11::internal::untyped_sender | |
| virtual | ~untyped_sender () |
Protected Types | |
| typedef buffer_node< T, Allocator > | base_type |
| typedef base_type::size_type | size_type |
| typedef base_type::buffer_operation | queue_operation |
| typedef queue_node | class_type |
Protected Types inherited from tbb::flow::interface11::buffer_node< T, __TBB_DEFAULT_NODE_ALLOCATOR(T) > | |
| enum | op_type |
| typedef size_t | size_type |
| typedef internal::aggregating_functor< class_type, buffer_operation > | handler_type |
Protected Types inherited from internal::item_buffer< T, cache_aligned_allocator< T > > | |
| typedef size_t | size_type |
| typedef aligned_pair< item_type, buffer_item_state >::type | buffer_item_type |
| typedef tbb::internal::allocator_rebind< cache_aligned_allocator< T >, buffer_item_type >::type | allocator_type |
Protected Member Functions | |
| void | internal_forward_task (queue_operation *op) __TBB_override |
| void | internal_pop (queue_operation *op) __TBB_override |
| void | internal_reserve (queue_operation *op) __TBB_override |
| void | internal_consume (queue_operation *op) __TBB_override |
| void | reset_node (reset_flags f) __TBB_override |
Protected Member Functions inherited from tbb::flow::interface11::buffer_node< T, __TBB_DEFAULT_NODE_ALLOCATOR(T) > | |
| virtual void | handle_operations (buffer_operation *op_list) |
| void | handle_operations_impl (buffer_operation *op_list, derived_type *derived) |
| 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". More... | |
| virtual void | internal_reg_succ (buffer_operation *op) |
| Register successor. More... | |
| virtual void | internal_rem_succ (buffer_operation *op) |
| Remove successor. More... | |
| virtual void | internal_forward_task (buffer_operation *op) |
| Tries to forward valid items to successors. More... | |
| void | internal_forward_task_impl (buffer_operation *op, derived_type *derived) |
| virtual bool | internal_push (buffer_operation *op) |
| virtual void | internal_pop (buffer_operation *op) |
| virtual void | internal_reserve (buffer_operation *op) |
| virtual void | internal_consume (buffer_operation *op) |
| virtual void | internal_release (buffer_operation *op) |
| task * | try_put_task (const T &t) __TBB_override |
| receive an item, return a task *if possible More... | |
| graph & | graph_reference () const __TBB_override |
| void | reset_receiver (reset_flags) __TBB_override |
| put receiver back in initial state More... | |
| void | reset_node (reset_flags f) __TBB_override |
Protected Member Functions inherited from internal::reservable_item_buffer< T, cache_aligned_allocator< T > > | |
| bool | reserve_front (T &v) |
| void | consume_front () |
| void | release_front () |
Protected Member Functions inherited from internal::item_buffer< T, cache_aligned_allocator< T > > | |
| bool | buffer_empty () const |
| buffer_item_type & | item (size_type i) |
| const buffer_item_type & | item (size_type i) const |
| bool | my_item_valid (size_type i) const |
| bool | my_item_reserved (size_type i) const |
| const item_type & | get_my_item (size_t i) const |
| void | set_my_item (size_t i, const item_type &o) |
| void | fetch_item (size_t i, item_type &o) |
| void | move_item (size_t to, size_t from) |
| bool | place_item (size_t here, const item_type &me) |
| void | swap_items (size_t i, size_t j) |
| void | destroy_item (size_type i) |
| const item_type & | front () const |
| const item_type & | back () const |
| void | reserve_item (size_type i) |
| void | release_item (size_type i) |
| void | destroy_front () |
| void | destroy_back () |
| size_type | size (size_t new_tail=0) |
| size_type | capacity () |
| bool | buffer_full () |
| void | grow_my_array (size_t minimum_size) |
| Grows the internal array. More... | |
| bool | push_back (item_type &v) |
| bool | pop_back (item_type &v) |
| bool | pop_front (item_type &v) |
| void | clean_up_buffer (bool reset_pointers) |
Protected Member Functions inherited from tbb::flow::interface11::receiver< T > | |
| virtual task * | try_put_task_wrapper (const void *p, bool is_async) __TBB_override |
Protected Member Functions inherited from tbb::flow::interface11::internal::untyped_receiver | |
| template<typename X > | |
| task * | try_put_task (const X &t) |
| virtual bool | is_continue_receiver () |
Protected Member Functions inherited from tbb::flow::interface11::sender< T > | |
| virtual bool | try_get_wrapper (void *p, bool is_async) __TBB_override |
| virtual bool | try_reserve_wrapper (void *p, bool is_async) __TBB_override |
Protected Member Functions inherited from tbb::flow::interface11::internal::untyped_sender | |
| template<typename X > | |
| bool | try_get (X &t) |
| Request an item from the sender. More... | |
| template<typename X > | |
| bool | try_reserve (X &t) |
| Reserves an item in the sender. More... | |
Private Member Functions | |
| __TBB_STATIC_ASSERT ((tbb::internal::is_same_type< Allocator, null_type >::value), "Allocator template parameter for flow graph nodes is deprecated and will be removed. " "Specify TBB_DEPRECATED_FLOW_NODE_ALLOCATOR to temporary enable the deprecated interface.") | |
| bool | is_item_valid () |
| void | try_put_and_add_task (task *&last_task) |
Friends | |
| template<typename , typename > | |
| class | buffer_node |
Forwards messages in FIFO order.
Definition at line 2568 of file flow_graph.h.
|
protected |
Definition at line 2577 of file flow_graph.h.
|
protected |
Definition at line 2580 of file flow_graph.h.
| typedef T tbb::flow::interface11::queue_node< T, Allocator >::input_type |
Definition at line 2628 of file flow_graph.h.
| typedef T tbb::flow::interface11::queue_node< T, Allocator >::output_type |
Definition at line 2629 of file flow_graph.h.
| typedef receiver<input_type>::predecessor_type tbb::flow::interface11::queue_node< T, Allocator >::predecessor_type |
Definition at line 2630 of file flow_graph.h.
|
protected |
Definition at line 2579 of file flow_graph.h.
|
protected |
Definition at line 2578 of file flow_graph.h.
| typedef sender<output_type>::successor_type tbb::flow::interface11::queue_node< T, Allocator >::successor_type |
Definition at line 2631 of file flow_graph.h.
|
inlineexplicit |
Constructor.
Definition at line 2634 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 2648 of file flow_graph.h.
References CODEPTR, tbb::internal::fgt_node(), and tbb::flow::interface11::graph_node::my_graph.
|
private |
|
inlineprotected |
Definition at line 2622 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), internal::reservable_item_buffer< T, cache_aligned_allocator< T > >::consume_front(), and internal::SUCCEEDED.
|
inlineprotected |
Definition at line 2600 of file flow_graph.h.
References tbb::flow::interface11::buffer_node< T, __TBB_DEFAULT_NODE_ALLOCATOR(T) >::internal_forward_task_impl().
|
inlineprotected |
Definition at line 2604 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), internal::FAILED, internal::item_buffer< T, cache_aligned_allocator< T > >::my_head, internal::item_buffer< T, cache_aligned_allocator< T > >::my_item_valid(), internal::reservable_item_buffer< T, cache_aligned_allocator< T > >::my_reserved, internal::item_buffer< T, cache_aligned_allocator< T > >::pop_front(), and internal::SUCCEEDED.
|
inlineprotected |
Definition at line 2613 of file flow_graph.h.
References tbb::internal::__TBB_store_with_release(), internal::FAILED, internal::item_buffer< T, cache_aligned_allocator< T > >::my_head, internal::item_buffer< T, cache_aligned_allocator< T > >::my_item_valid(), internal::reservable_item_buffer< T, cache_aligned_allocator< T > >::my_reserved, internal::reservable_item_buffer< T, cache_aligned_allocator< T > >::reserve_front(), and internal::SUCCEEDED.
|
inlineprivate |
Definition at line 2585 of file flow_graph.h.
References internal::item_buffer< T, cache_aligned_allocator< T > >::my_head, and internal::item_buffer< T, cache_aligned_allocator< T > >::my_item_valid().
|
inlineprotectedvirtual |
Implements tbb::flow::interface11::graph_node.
Definition at line 2661 of file flow_graph.h.
References tbb::flow::interface11::buffer_node< T, Allocator >::reset_node().
|
inlineprivate |
Definition at line 2589 of file flow_graph.h.
References tbb::flow::interface11::combine_tasks(), internal::item_buffer< T, cache_aligned_allocator< T > >::destroy_front(), internal::item_buffer< T, cache_aligned_allocator< T > >::front(), and tbb::flow::interface11::buffer_node< T, __TBB_DEFAULT_NODE_ALLOCATOR(T) >::graph_reference().
|
friend |
Definition at line 2583 of file flow_graph.h.