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

Provides a view over the edge_container allowing PARAGRAPH tasks to create data flow value consumption. More...

Public Member Functions

template<typename... OptionalFilterParam>
 edge_view (OptionalFilterParam &&... filter)
 
 edge_view (edge_view const &)=default
 
 edge_view (edge_view &&)=default
 
edge_viewoperator= (edge_view const &)=delete
 
void setup_flow (index_type producer_tid, local_notifier_t *notifier_ptr, edge_container &container) const
 Called by successor tasks to create an edge in the edge_container. More...
 
reference operator[] (index_type) 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 = 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::edge_view< T, OptionalFilter >

Provides a view over the edge_container allowing PARAGRAPH tasks to create data flow value consumption.

Template Parameters
TThe edge value type (i.e., the return type of the consumed task).
OptionalFilterType 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.

Template Parameters
TThe edge value type (i.e., the return type of the consumed task).
FilterType 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::edge_view< T, OptionalFilter >::setup_flow ( index_type  producer_tid,
local_notifier_t notifier_ptr,
edge_container 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::edge_view< T, OptionalFilter >::operator[] ( index_type  ) 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::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: