emlabcpp
modern opinionated embedded C++ library
emlabcpp::protocol::packet< Def, Payload > Struct Template Reference

#include <packet.h>

+ Inheritance diagram for emlabcpp::protocol::packet< Def, Payload >:
+ Collaboration diagram for emlabcpp::protocol::packet< Def, Payload >:

Classes

struct  sequencer_def
 

Public Types

using payload_type = Payload
 
using base = packet_base< Def, Payload >
 
using prefix_type = std::decay_t< decltype(prefix) >
 
using prefix_traits = proto_traits< prefix_type >
 
using size_type = typename Def::size_type
 
using size_traits = proto_traits< size_type >
 
using payload_traits = proto_traits< Payload >
 
using value_type = typename payload_traits::value_type
 
using checksum_type = typename Def::checksum_type
 
using checksum_traits = proto_traits< checksum_type >
 
using sequencer_type = sequencer< sequencer_def >
 
- Public Types inherited from emlabcpp::protocol::tuple< Endianess, Ds >
template<typename... SubDs>
using with_items = tuple< Endianess, Ds..., SubDs... >
 
using def_tuple = std::tuple< Ds... >
 
template<std::size_t N>
using nth_def = std::tuple_element_t< N, def_tuple >
 
using def_type = endianess_wrapper< Endianess, def_tuple >
 
using traits = proto_traits< def_type >
 
using value_type = typename traits::value_type
 
using message_type = message< max_size >
 

Static Public Member Functions

static constexpr checksum_type get_checksum (view< std::byte const * > const mview)
 
- Static Public Member Functions inherited from emlabcpp::protocol::tuple< Endianess, Ds >
constexpr static value_type make_val (typename proto_traits< Ds >::value_type const &... args)
 

Static Public Attributes

static constexpr auto prefix = Def::prefix
 
static constexpr auto endianess = Def::endianess
 
static constexpr std::size_t prefix_size = prefix_traits::max_size
 
static constexpr std::size_t size_size = size_traits::max_size
 
- Static Public Attributes inherited from emlabcpp::protocol::tuple< Endianess, Ds >
static constexpr std::size_t max_size = traits::max_size
 

Member Typedef Documentation

◆ base

template<packet_def Def, typename Payload >
using emlabcpp::protocol::packet< Def, Payload >::base = packet_base< Def, Payload >

◆ checksum_traits

template<packet_def Def, typename Payload >
using emlabcpp::protocol::packet< Def, Payload >::checksum_traits = proto_traits< checksum_type >

◆ checksum_type

template<packet_def Def, typename Payload >
using emlabcpp::protocol::packet< Def, Payload >::checksum_type = typename Def::checksum_type

◆ payload_traits

template<packet_def Def, typename Payload >
using emlabcpp::protocol::packet< Def, Payload >::payload_traits = proto_traits< Payload >

◆ payload_type

template<packet_def Def, typename Payload >
using emlabcpp::protocol::packet< Def, Payload >::payload_type = Payload

◆ prefix_traits

template<packet_def Def, typename Payload >
using emlabcpp::protocol::packet< Def, Payload >::prefix_traits = proto_traits< prefix_type >

◆ prefix_type

template<packet_def Def, typename Payload >
using emlabcpp::protocol::packet< Def, Payload >::prefix_type = std::decay_t< decltype( prefix ) >

◆ sequencer_type

template<packet_def Def, typename Payload >
using emlabcpp::protocol::packet< Def, Payload >::sequencer_type = sequencer< sequencer_def >

◆ size_traits

template<packet_def Def, typename Payload >
using emlabcpp::protocol::packet< Def, Payload >::size_traits = proto_traits< size_type >

◆ size_type

template<packet_def Def, typename Payload >
using emlabcpp::protocol::packet< Def, Payload >::size_type = typename Def::size_type

◆ value_type

template<packet_def Def, typename Payload >
using emlabcpp::protocol::packet< Def, Payload >::value_type = typename payload_traits::value_type

Member Function Documentation

◆ get_checksum()

template<packet_def Def, typename Payload >
static constexpr checksum_type emlabcpp::protocol::packet< Def, Payload >::get_checksum ( view< std::byte const * > const  mview)
inlinestaticconstexpr

Member Data Documentation

◆ endianess

template<packet_def Def, typename Payload >
constexpr auto emlabcpp::protocol::packet< Def, Payload >::endianess = Def::endianess
staticconstexpr

◆ prefix

template<packet_def Def, typename Payload >
constexpr auto emlabcpp::protocol::packet< Def, Payload >::prefix = Def::prefix
staticconstexpr

◆ prefix_size

template<packet_def Def, typename Payload >
constexpr std::size_t emlabcpp::protocol::packet< Def, Payload >::prefix_size = prefix_traits::max_size
staticconstexpr

◆ size_size

template<packet_def Def, typename Payload >
constexpr std::size_t emlabcpp::protocol::packet< Def, Payload >::size_size = size_traits::max_size
staticconstexpr

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