Skip to content

iox::dds::IoxChunkDatagramHeader🔗

The datagram header with chunk metadata for user-header and user-payload.

#include <iox_chunk_datagram_header.hpp>

Public Types🔗

Name
using iox::cxx::vector< uint8_t, 16U > Serialized_t

Public Functions🔗

Name
Serialized_t serialize(const IoxChunkDatagramHeader & datagramHeader)
Serializes a IoxChunkDatagramHeader into a vector of uint8_t.
IoxChunkDatagramHeader deserialize(const Serialized_t & serializedDatagramHeader)
Deserializes a vector of uint8_t into a IoxChunkDatagramHeader.

Public Attributes🔗

Name
constexpr uint8_t DATAGRAM_VERSION
From the 1.0 release onward, this must be incremented for each incompatible change, e.g.
uint8_t datagramVersion
Endianess endianness
uint16_t userHeaderId
uint32_t userHeaderSize
uint32_t userPayloadSize
uint32_t userPayloadAlignment

Public Types Documentation🔗

using Serialized_t🔗

using iox::dds::IoxChunkDatagramHeader::Serialized_t =  iox::cxx::vector<uint8_t, 16U>;

Public Functions Documentation🔗

function serialize🔗

static Serialized_t serialize(
    const IoxChunkDatagramHeader & datagramHeader
)

Serializes a IoxChunkDatagramHeader into a vector of uint8_t.

Parameters:

  • datagramHeader to serialize

Return: the serialized IoxChunkDatagramHeader

function deserialize🔗

static IoxChunkDatagramHeader deserialize(
    const Serialized_t & serializedDatagramHeader
)

Deserializes a vector of uint8_t into a IoxChunkDatagramHeader.

Parameters:

Return: the deserialized IoxChunkDatagramHeader

Public Attributes Documentation🔗

variable DATAGRAM_VERSION🔗

static constexpr uint8_t DATAGRAM_VERSION {1U};

From the 1.0 release onward, this must be incremented for each incompatible change, e.g.

  • data width of members changes
  • members are rearranged
  • semantic meaning of a member changes

variable datagramVersion🔗

uint8_t datagramVersion {[DATAGRAM_VERSION](/v1.0.1/API-reference/DDS-gateway/Classes/structiox_1_1dds_1_1IoxChunkDatagramHeader/#variable-datagram_version)};

Note: This must always be the first member and always 1 bytes in order to prevent issues with endianess when deserialized or incorrectly detected versions due to different size

variable endianness🔗

Endianess endianness {Endianess::UNDEFINED};

Note: This must always be 1 byte in order to prevent issues with endianess when deserialized

variable userHeaderId🔗

uint16_t userHeaderId {0xFFFF};

variable userHeaderSize🔗

uint32_t userHeaderSize {0U};

variable userPayloadSize🔗

uint32_t userPayloadSize {0U};

variable userPayloadAlignment🔗

uint32_t userPayloadAlignment {0U};

Updated on 17 June 2021 at 11:15:28 CEST