STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Public Types
stapl::pg_edge_view< T, OptionalFilter > Class Template Reference

Provides a view over the input ports of an inter-paragraph dataflow backed view argument, so that point to point dataflow to tasks within a consuming paragraph can be initiated. More...

Public Member Functions

template<typename... OptionalFilterParam>
 pg_edge_view (edge_container &ct, OptionalFilterParam &&... filter)
 
 pg_edge_view (pg_edge_view const &)=default
 
 pg_edge_view (pg_edge_view &&)=default
 
pg_edge_viewoperator= (pg_edge_view const &)=delete
 
void setup_flow (index_type producer_tid, local_notifier_t *notifier_ptr, edge_container &) const
 Called by successor tasks to create an edge in the edge_container. More...
 
reference operator[] (index_type producer_tid) const
 Return a reference to the value produced by task with identifier producer_tid. More...
 
reference transporter_reference (index_type producer_tid) const
 Called to create a serialized edge reference if necessary during paragraph task placement.
 
constexpr locality_info locality (index_type) const noexcept
 Return locality information about the element specified by the gid. More...
 

Public Types

using value_type = typename detail::compute_edge_view_filter< T, OptionalFilter... >::value_type
 
using reference = pg_lazy_edge_reference< value_type >
 
using index_type = std::size_t
 
using task_placement_dontcare = std::true_type
 

Detailed Description

template<typename T, typename... OptionalFilter>
class stapl::pg_edge_view< T, OptionalFilter >

Provides a view over the input ports of an inter-paragraph dataflow backed view argument, so that point to point dataflow to tasks within a consuming paragraph can be initiated.

Template Parameters
TThe edge value type (i.e., the return type of the consumed task).
OptionalFilter Type of a functor applied to the the value produced by a task of the edge_container prior data flow to the consumer.

The underlying edge container is non templated and is agnostic to the edge value type. The edge_view informs the edge_container of the type via explicit template parameter specification when invoking methods.

Member Function Documentation

◆ setup_flow()

template<typename T , typename... OptionalFilter>
void stapl::pg_edge_view< T, OptionalFilter >::setup_flow ( index_type  producer_tid,
local_notifier_t notifier_ptr,
edge_container  
) const

Called by successor tasks to create an edge in the edge_container.

Parameters
producer_tidThe task identifier of the task to set up the data flow from.
notifier_ptrA pointer to the notifier that should be invoked when the requested value is available on this location for consumption.

Wraps the notifier appropriately based on whether persistency is enabled or not and then redirects to edge_container::setup_flow.

◆ operator[]()

template<typename T , typename... OptionalFilter>
reference stapl::pg_edge_view< T, OptionalFilter >::operator[] ( index_type  producer_tid) const

Return a reference to the value produced by task with identifier producer_tid.

The reference is backed by an entry in value cache of the underlying edge_container.

◆ locality()

template<typename T , typename... OptionalFilter>
constexpr locality_info stapl::pg_edge_view< T, OptionalFilter >::locality ( index_type  ) const
noexcept

Return locality information about the element specified by the gid.

Returns
A locality_qualifier, affinity specifier, as well as this object's handle and associated location for this affinity.

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