20.2.3.20.2. SerializedPayload_t

struct SerializedPayload_t

Structure SerializedPayload_t.

Public Functions

inline SerializedPayload_t()

Default constructor.

inline explicit SerializedPayload_t(uint32_t len)
Parameters:

len – Maximum size of the payload

SerializedPayload_t(const SerializedPayload_t &other) = delete

Copy constructor.

SerializedPayload_t &operator=(const SerializedPayload_t &other) = delete

Copy operator.

inline SerializedPayload_t(SerializedPayload_t &&other) noexcept

Move constructor Directly moves the fields from other instead of calling the move assignment operator, since the latter assumes the destination is already constructed (it may release the currently owned payload). Using the move assignment operator here would read uninitialized members of the newly constructed object.

SerializedPayload_t &operator=(SerializedPayload_t &&other) noexcept

Move operator.

~SerializedPayload_t()

Destructor It is expected to release the payload if the payload owner is not nullptr before destruction.

bool copy(const SerializedPayload_t *serData, bool with_limit = true)

Copy another structure (including allocating new space for the data).

Parameters:
  • serData[in] Pointer to the structure to copy

  • with_limit – if true, the function will fail when providing a payload too big

Returns:

True if correct

bool reserve_fragmented(SerializedPayload_t *serData)

Allocate new space for fragmented data.

Parameters:

serData[in] Pointer to the structure to copy

Returns:

True if correct

void empty()

Empty the payload.

Pre:

payload_owner must be nullptr

Public Members

uint16_t encapsulation

Encapsulation of the data as suggested in the RTPS 2.1 specification chapter 10.

uint32_t length

Actual length of the data.

octet *data

Pointer to the data.

uint32_t max_size

Maximum size of the payload.

uint32_t pos

Position when reading.

IPayloadPool *payload_owner = nullptr

Pool that created the payload.

bool is_serialized_key = false

Whether the payload contains a serialized key, or the whole data.

Public Static Attributes

static constexpr size_t representation_header_size = 4u

Size in bytes of the representation header as specified in the RTPS 2.3 specification chapter 10.