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

Storage class for all edge flowed values that abstracts how access to the value is provided. More...

Public Member Functions

 edge_version_storage (edge_version_storage const &)=delete
 
edge_version_storageoperator= (edge_version_storage const &)=delete
 
bool is_direct_storage (void) const
 
immutable_shared< T > wrapper (void) const
 
T && steal (void)
 Allows stored value to be stolen by a local consumer task if a runtime check (edge_entry::stealable() conservatively detects the value is no longer needed.
 
void clear_flow (void)
 Reset state for reinvocation in a persistent paragraph.
 
T const & value (void) const
 

Protected Member Functions

template<typename Q >
void set_value (Q &&val)
 
void set_value (immutable_shared< T > &&wrapper)
 
void set_value (immutable_shared< T > const &wrapper)
 

Detailed Description

template<typename T>
class stapl::detail::edge_version_storage< T >

Storage class for all edge flowed values that abstracts how access to the value is provided.

Values are accessed in one of two ways: (1) In object frame. This occurs when object is flowed by copy or move and the corresponding derived class version entry (and it's edge entry) managed the lifetime of the object.

(2) Via an immutable shared wrapper to the value created by the runtime. Used when sharing the value with another location in shared memory.


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