STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
comms::messages::control::CommsMessage< Fields > Struct Template Reference

CommsMessage - Template-based message serialization. More...

#include <CommsMessage.hpp>

Classes

struct  is_std_array
struct  is_std_array< std::array< T, N > >
struct  is_comms_message
struct  is_comms_message< CommsMessage< Ts... > >
struct  MessageSizeHelper
struct  MessageSizeHelper< CommsMessage< Ts... > >

Public Member Functions

 CommsMessage ()
 CommsMessage (Fields... args)
template<std::size_t Index>
auto & getField ()
template<std::size_t Index>
const auto & getField () const
template<std::size_t Index, typename ValueType>
void setField (ValueType &&value)
constexpr std::size_t get_size () const
void serialize (uint8_t *buffer) const
void deserialize (const uint8_t *buffer)

Static Public Member Functions

static constexpr std::size_t nbytes ()

Public Attributes

std::tuple< Fields... > fields

Private Member Functions

template<typename T>
void serialize_field (uint8_t *buffer, std::size_t &offset, const T &field) const

Static Private Attributes

template<typename T>
static constexpr bool is_std_array_v = is_std_array<T>::value
template<typename T>
static constexpr bool is_comms_message_v = is_comms_message<T>::value

Detailed Description

template<typename... Fields>
struct comms::messages::control::CommsMessage< Fields >

CommsMessage - Template-based message serialization.

Standalone implementation for DAQ system. Provides type-safe message definition and serialization.

Definition at line 24 of file CommsMessage.hpp.

Constructor & Destructor Documentation

◆ CommsMessage() [1/2]

template<typename... Fields>
comms::CommsMessage< Fields >::CommsMessage ( )
inline

Definition at line 28 of file CommsMessage.hpp.

◆ CommsMessage() [2/2]

template<typename... Fields>
comms::CommsMessage< Fields >::CommsMessage ( Fields... args)
inline

Definition at line 32 of file CommsMessage.hpp.

Member Function Documentation

◆ deserialize()

template<typename... Fields>
void comms::CommsMessage< Fields >::deserialize ( const uint8_t * buffer)
inline

Definition at line 67 of file CommsMessage.hpp.

◆ get_size()

template<typename... Fields>
std::size_t comms::CommsMessage< Fields >::get_size ( ) const
inlineconstexpr

Definition at line 50 of file CommsMessage.hpp.

◆ getField() [1/2]

template<typename... Fields>
template<std::size_t Index>
auto & comms::CommsMessage< Fields >::getField ( )
inline

Definition at line 36 of file CommsMessage.hpp.

◆ getField() [2/2]

template<typename... Fields>
template<std::size_t Index>
const auto & comms::CommsMessage< Fields >::getField ( ) const
inline

Definition at line 41 of file CommsMessage.hpp.

◆ nbytes()

template<typename... Fields>
constexpr std::size_t comms::CommsMessage< Fields >::nbytes ( )
inlinestaticconstexpr

Definition at line 79 of file CommsMessage.hpp.

◆ serialize()

template<typename... Fields>
void comms::CommsMessage< Fields >::serialize ( uint8_t * buffer) const
inline

Definition at line 57 of file CommsMessage.hpp.

◆ serialize_field()

template<typename... Fields>
template<typename T>
void comms::CommsMessage< Fields >::serialize_field ( uint8_t * buffer,
std::size_t & offset,
const T & field ) const
inlineprivate

Definition at line 87 of file CommsMessage.hpp.

◆ setField()

template<typename... Fields>
template<std::size_t Index, typename ValueType>
void comms::CommsMessage< Fields >::setField ( ValueType && value)
inline

Definition at line 46 of file CommsMessage.hpp.

Member Data Documentation

◆ fields

template<typename... Fields>
std::tuple<Fields...> comms::CommsMessage< Fields >::fields

Definition at line 25 of file CommsMessage.hpp.

◆ is_comms_message_v

template<typename... Fields>
template<typename T>
bool comms::CommsMessage< Fields >::is_comms_message_v = is_comms_message<T>::value
staticconstexprprivate

Definition at line 128 of file CommsMessage.hpp.

◆ is_std_array_v

template<typename... Fields>
template<typename T>
bool comms::CommsMessage< Fields >::is_std_array_v = is_std_array<T>::value
staticconstexprprivate

Definition at line 118 of file CommsMessage.hpp.


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