C++ Actor Framework 1.0.0
Loading...
Searching...
No Matches
caf::detail::message_data Class Reference

Container for storing an arbitrary number of message elements. More...

#include <message_data.hpp>

Public Member Functions

 message_data (const message_data &)=delete
 
message_dataoperator= (const message_data &)=delete
 
 message_data (type_id_list types) noexcept
 Constructs the message data object without constructing any element.
 
message_datacopy () const
 
void ref () const noexcept
 Increases reference count by one.
 
void deref () noexcept
 Decreases the reference count by one and destroys the object when its reference count drops to zero.
 
bool unique () const noexcept
 Queries whether there is exactly one reference to this data.
 
size_t get_reference_count () const noexcept
 Returns the current number of references to this data.
 
std::byte * storage () noexcept
 Returns the memory region for storing the message elements.
 
const std::byte * storage () const noexcept
 Returns the memory region for storing the message elements.
 
auto types () const noexcept
 Returns the type IDs of the message elements.
 
auto size () const noexcept
 Returns the number of elements.
 
std::byte * at (size_t index) noexcept
 Returns the memory location for the object at given index.
 
const std::byte * at (size_t index) const noexcept
 Returns the memory location for the object at given index.
 
void inc_constructed_elements ()
 
template<class... Ts>
void init (Ts &&... xs)
 
std::byte * stepwise_init (std::byte *pos)
 
template<class T , class... Ts>
std::byte * stepwise_init (std::byte *pos, T &&x, Ts &&... xs)
 
std::byte * stepwise_init_from (std::byte *pos, const message &msg)
 
std::byte * stepwise_init_from (std::byte *pos, const message_data *other)
 
template<class Tuple , size_t... Is>
std::byte * stepwise_init_from (std::byte *pos, Tuple &&tup, std::index_sequence< Is... >)
 
template<class... Ts>
std::byte * stepwise_init_from (std::byte *pos, std::tuple< Ts... > &&tup)
 
template<class... Ts>
std::byte * stepwise_init_from (std::byte *pos, std::tuple< Ts... > &tup)
 
template<class... Ts>
std::byte * stepwise_init_from (std::byte *pos, const std::tuple< Ts... > &tup)
 
template<class... Ts>
void init_from (Ts &&... xs)
 

Static Public Member Functions

static intrusive_ptr< message_datamake_uninitialized (type_id_list types)
 

Related Symbols

(Note that these are not member symbols.)

void intrusive_ptr_add_ref (const message_data *ptr)
 
void intrusive_ptr_release (message_data *ptr)
 

Detailed Description

Container for storing an arbitrary number of message elements.

Member Function Documentation

◆ at() [1/2]

const std::byte * caf::detail::message_data::at ( size_t index) const
noexcept

Returns the memory location for the object at given index.

Precondition
index < size()

◆ at() [2/2]

std::byte * caf::detail::message_data::at ( size_t index)
noexcept

Returns the memory location for the object at given index.

Precondition
index < size()

◆ storage()

const std::byte * caf::detail::message_data::storage ( ) const
noexcept

Returns the memory region for storing the message elements.


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