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_view & | operator= (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 |
Provides a view over the edge_container
allowing PARAGRAPH tasks to create data flow value consumption.
T | The 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.
T | The edge value type (i.e., the return type of the consumed task). |
Filter | 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.
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.
producer_tid | The task identifier of the task to set up the data flow from. |
notifier_ptr | A 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.
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.
|
noexcept |
Return locality information about the element specified by the gid.