STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Static Public Member Functions | Static Private Member Functions | Private Attributes
stapl::runtime::p_object_ref_storage< T > Class Template Reference

Storage for an lvalue reference to a distributed object. More...

Public Member Functions

 p_object_ref_storage (T const &t, void *const base, std::size_t &size) noexcept
 Constructs a new object by packing t in it. More...
 
template<typename Tuple >
 p_object_ref_storage (Tuple &&t) noexcept
 Packs the object contained in tuple t. More...
 
T & get (void *const base)
 Returns the stored object after unpacking it. More...
 
T & get (void *const base, std::size_t &size)
 Returns the stored object after unpacking it. More...
 

Static Public Member Functions

static std::size_t packed_size (T const &t) noexcept
 Returns the packed size of t. More...
 

Static Private Member Functions

static std::size_t packed_size (T * const &t) noexcept
 Returns the packed size of t.
 

Private Attributes

std::aligned_storage< sizeof(value_type), std::alignment_of< value_type >::value >::type m_storage
 Stored object.
 
aligned_storage_t< sizeof(value_type)> m_force_alignment
 

Detailed Description

template<typename T>
class stapl::runtime::p_object_ref_storage< T >

Storage for an lvalue reference to a distributed object.

Template Parameters
TDistributed object type.

Constructor & Destructor Documentation

◆ p_object_ref_storage() [1/2]

template<typename T >
stapl::runtime::p_object_ref_storage< T >::p_object_ref_storage ( T const &  t,
void *const  base,
std::size_t &  size 
)
noexcept

Constructs a new object by packing t in it.

This constructor will copy the dynamic part of the object at base + size, which should be big enough to fit it.

Parameters
tObject to pack.
basePointer to buffer start where the dynamic part of t can be stored in.
sizeOffset from base where space is available.

◆ p_object_ref_storage() [2/2]

template<typename T >
template<typename Tuple >
stapl::runtime::p_object_ref_storage< T >::p_object_ref_storage ( Tuple &&  t)
noexcept

Packs the object contained in tuple t.

Parameters
tTuple with the object to pack, the start of the buffer for the dynamic part of the object and the offset from the start of the buffer.

Member Function Documentation

◆ packed_size()

template<typename T >
static std::size_t stapl::runtime::p_object_ref_storage< T >::packed_size ( T const &  t)
staticnoexcept

Returns the packed size of t.

◆ get() [1/2]

template<typename T >
T& stapl::runtime::p_object_ref_storage< T >::get ( void *const  base)

Returns the stored object after unpacking it.

Parameters
baseBuffer where the dynamic part of the object is stored.

◆ get() [2/2]

template<typename T >
T& stapl::runtime::p_object_ref_storage< T >::get ( void *const  base,
std::size_t &  size 
)

Returns the stored object after unpacking it.

Parameters
baseBuffer where the dynamic part of the object is stored.
sizeVariable to store how many bytes were unpacked.

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