STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Public Types | Public Attributes
stapl::detail::result_manager< Return, b_has_span > Struct Template Reference

This class is used internally by the PARAGRAPH to manage the setup of storage for the PARAGRAPH's result as well as setting up the notification flow from the internal task on each location in the PARAGRAPH gang. More...

Public Member Functions

result_container_baseget_result_container (void)
 
void reset (void)
 
bool has_outstanding_consumers (void) const
 
result_type apply (task_graph &tg, bool one_sided)
 Setup the result_view and underlying result_container storage for the PARAGRAPH, and register the appropriate callback with PARAGRAPH.
 
void set_result_impl (std::size_t, task_graph::task_id_t task_id, task_graph &tg)
 Signature for non-void return types. Redirect to the edge_container. More...
 
os_td_wait_tset_os_result_notifier (task_graph &tg, result_type &)
 If the return type of the paragraph is non-void, initializes an instance of one_sided_wait_td_notifier to tie parent paragraph notification to both this paragraph's dataflow and termination detection. More...
 
result_type & finalize_result (result_type &res)
 For the primary class template, this method is an identity op. More...
 

Public Types

using edge_type = Return
 
using result_type = typename result_view< edge_type >::reference
 
using tmp_result_type = result_type
 
using stored_value_t = typename df_stored_type< edge_type >::type
 
using notifier_t = boost::function< void(std::size_t, stored_value_t const &)>
 
using os_td_wait_t = one_sided_wait_td_notifier< edge_type >
 

Public Attributes

notifier_t m_result_notifier
 The notifier this PARAGRAPH invokes when the task marked as the result task for this location finishes execution.
 
edge_info_holder< edge_type > m_out_edge_info
 Holds information about internal edge that is serving outgoing paragraph edge so that zero copy /move can be attempted upon exit.
 

Detailed Description

template<typename Return, bool b_has_span = false>
struct stapl::detail::result_manager< Return, b_has_span >

This class is used internally by the PARAGRAPH to manage the setup of storage for the PARAGRAPH's result as well as setting up the notification flow from the internal task on each location in the PARAGRAPH gang.

See also
paragraph::operator()

Member Function Documentation

◆ set_result_impl()

template<typename Return, bool b_has_span = false>
void stapl::detail::result_manager< Return, b_has_span >::set_result_impl ( std::size_t  ,
task_graph::task_id_t  task_id,
task_graph tg 
)

Signature for non-void return types. Redirect to the edge_container.

◆ set_os_result_notifier()

template<typename Return, bool b_has_span = false>
os_td_wait_t* stapl::detail::result_manager< Return, b_has_span >::set_os_result_notifier ( task_graph tg,
result_type &   
)

If the return type of the paragraph is non-void, initializes an instance of one_sided_wait_td_notifier to tie parent paragraph notification to both this paragraph's dataflow and termination detection.

◆ finalize_result()

template<typename Return, bool b_has_span = false>
result_type& stapl::detail::result_manager< Return, b_has_span >::finalize_result ( result_type &  res)

For the primary class template, this method is an identity op.

Parameters
resThe PARAGRAPH result from this location.

The documentation for this struct was generated from the following file: