Safe DDS
eprosima::safedds::serialization::cdr::Deserializer Class Reference

CDR(Common Data Representation) Deserializer implementation. More...

#include <Deserializer.hpp>

Public Member Functions

 Deserializer (const memory::IConstByteArrayView &buffer, platform::Endianness endianness, XCDRVersion xcdr_version) noexcept
 Deserializer constructor. More...
 
virtual ~Deserializer () noexcept=default
 Virtual destructor. More...
 
 Deserializer (const Deserializer &) noexcept=delete
 Copy deleted. More...
 
 Deserializer (Deserializer &&) noexcept=delete
 Movement deleted. More...
 
Deserializeroperator= (const Deserializer &) noexcept=delete
 Copy operator deleted. More...
 
Deserializeroperator= (Deserializer &&) noexcept=delete
 Movement operator deleted due private references. More...
 
uint32_t deserializer_size () const noexcept override
 Returns size of deserializer. More...
 
uint32_t deserializer_remaining_size () const noexcept override
 Returns remaining available size of deserializer. More...
 
uint32_t deserializer_used_size () const noexcept override
 Gets deserializer used size. More...
 
ReturnCode deserializer_skip (uint32_t size) noexcept override
 Skips slice in deserialization process. More...
 
ReturnCode deserializer_skip (uint32_t size, memory::IConstMutableByteArrayView &view) noexcept override
 Skips slice in deserialization process and returns skipped slice to the user. More...
 
platform::Endianness get_endianness () const noexcept override
 Gets deserializer endianness. More...
 
void reset_alignment () noexcept override
 Resets serializer alignment. More...
 
ReturnCode deserialize (char &value) noexcept override
 Deserialize a single variable, implementations for each supported type: char bool uint8_t uint16_t uint32_t uint64_t int8_t int16_t int32_t int64_t float double. More...
 
ReturnCode deserialize (bool &value) noexcept override
 Deserialize a single bool. More...
 
ReturnCode deserialize (uint8_t &value) noexcept override
 Deserialize a single uint8_t. More...
 
ReturnCode deserialize (uint16_t &value) noexcept override
 Deserialize a single uint16_t. More...
 
ReturnCode deserialize (uint32_t &value) noexcept override
 Deserialize a single uint32_t. More...
 
ReturnCode deserialize (uint64_t &value) noexcept override
 Deserialize a single uint64_t. More...
 
ReturnCode deserialize (int8_t &value) noexcept override
 Deserialize a single int8_t. More...
 
ReturnCode deserialize (int16_t &value) noexcept override
 Deserialize a single int16_t. More...
 
ReturnCode deserialize (int32_t &value) noexcept override
 Deserialize a single int32_t. More...
 
ReturnCode deserialize (int64_t &value) noexcept override
 Deserialize a single int64_t. More...
 
ReturnCode deserialize (float &value) noexcept override
 Deserialize a single float. More...
 
ReturnCode deserialize (double &value) noexcept override
 Deserialize a single double. More...
 
ReturnCode deserialize_array (char *value, uint32_t size) noexcept override
 Deserialize array, implementations for each supported type: char bool uint8_t uint16_t uint32_t uint64_t int8_t int16_t int32_t int64_t float double. More...
 
ReturnCode deserialize_array (bool *value, uint32_t size) noexcept override
 Deserialize bool array: More...
 
ReturnCode deserialize_array (uint8_t *value, uint32_t size) noexcept override
 Deserialize uint8_t array: More...
 
ReturnCode deserialize_array (uint16_t *value, uint32_t size) noexcept override
 Deserialize uint16_t array: More...
 
ReturnCode deserialize_array (uint32_t *value, uint32_t size) noexcept override
 Deserialize uint32_t array: More...
 
ReturnCode deserialize_array (uint64_t *value, uint32_t size) noexcept override
 Deserialize uint64_t array: More...
 
ReturnCode deserialize_array (int8_t *value, uint32_t size) noexcept override
 Deserialize int8_t array: More...
 
ReturnCode deserialize_array (int16_t *value, uint32_t size) noexcept override
 Deserialize int16_t array: More...
 
ReturnCode deserialize_array (int32_t *value, uint32_t size) noexcept override
 Deserialize int32_t array: More...
 
ReturnCode deserialize_array (int64_t *value, uint32_t size) noexcept override
 Deserialize int64_t array: More...
 
ReturnCode deserialize_array (float *value, uint32_t size) noexcept override
 Deserialize float array: More...
 
ReturnCode deserialize_array (double *value, uint32_t size) noexcept override
 Deserialize double array: More...
 
ReturnCode deserialize_sequence (char *value, uint32_t capacity, uint32_t &size) noexcept override
 Deserialize sequence, implementations for each supported type: char bool uint8_t uint16_t uint32_t uint64_t int8_t int16_t int32_t int64_t float double. More...
 
ReturnCode deserialize_sequence (bool *value, uint32_t capacity, uint32_t &size) noexcept override
 Deserialize bool sequence. More...
 
ReturnCode deserialize_sequence (uint8_t *value, uint32_t capacity, uint32_t &size) noexcept override
 Deserialize uint8_t sequence. More...
 
ReturnCode deserialize_sequence (uint16_t *value, uint32_t capacity, uint32_t &size) noexcept override
 Deserialize uint16_t sequence. More...
 
ReturnCode deserialize_sequence (uint32_t *value, uint32_t capacity, uint32_t &size) noexcept override
 Deserialize uint32_t sequence. More...
 
ReturnCode deserialize_sequence (uint64_t *value, uint32_t capacity, uint32_t &size) noexcept override
 Deserialize uint64_t sequence. More...
 
ReturnCode deserialize_sequence (int8_t *value, uint32_t capacity, uint32_t &size) noexcept override
 Deserialize int8_t sequence. More...
 
ReturnCode deserialize_sequence (int16_t *value, uint32_t capacity, uint32_t &size) noexcept override
 Deserialize int16_t sequence. More...
 
ReturnCode deserialize_sequence (int32_t *value, uint32_t capacity, uint32_t &size) noexcept override
 Deserialize int32_t sequence. More...
 
ReturnCode deserialize_sequence (int64_t *value, uint32_t capacity, uint32_t &size) noexcept override
 Deserialize int64_t sequence. More...
 
ReturnCode deserialize_sequence (float *value, uint32_t capacity, uint32_t &size) noexcept override
 Deserialize float sequence. More...
 
ReturnCode deserialize_sequence (double *value, uint32_t capacity, uint32_t &size) noexcept override
 Deserialize double sequence. More...
 

Protected Member Functions

ReturnCode deserialize (uint8_t *bytes, uint32_t type_size) noexcept
 Deserialize a single value. More...
 
ReturnCode deserialize_array (uint8_t *bytes, uint32_t size, uint32_t type_size) noexcept
 Deserialize array. More...
 
ReturnCode deserialize_sequence (uint8_t *bytes, uint32_t capacity, uint32_t &size, uint32_t type_size) noexcept
 Deserialize sequence. More...
 
void perform_deserialization (uint8_t *bytes, uint32_t num_bytes, uint32_t padding) noexcept
 Deserialize data from internal buffer. More...
 
void perform_deserialization_no_native (uint8_t *bytes, uint32_t num_bytes, uint32_t endianness_group, uint32_t padding) noexcept
 Deserialize data from internal buffer without using native endianness. More...
 
uint32_t xcdr_padding_needed (uint32_t pos, uint32_t size) noexcept
 Gets the padding needed to align an element given the current position, its size and the deserializer XCDR version. More...
 
- Protected Member Functions inherited from eprosima::safedds::serialization::IDeserializer
 ~IDeserializer () noexcept=default
 Protected destructor ownership defined on creation. More...
 
 IDeserializer () noexcept=default
 Default creation. More...
 
 IDeserializer (const IDeserializer &) noexcept=delete
 Copy deleted. More...
 
 IDeserializer (IDeserializer &&) noexcept=delete
 Movement deleted. More...
 
IDeserializeroperator= (const IDeserializer &) noexcept=delete
 Copy operator deleted. More...
 
IDeserializeroperator= (IDeserializer &&) noexcept=delete
 Movement operator deleted. More...
 

Protected Attributes

const memory::IConstByteArrayViewbuffer_
 Internal buffer View. More...
 
uint32_t position_ = 0
 Position in the View. More...
 
uint32_t alignment_position_ = 0
 Alignment position. More...
 
platform::Endianness endianness_
 Endianness to use. More...
 
const bool native_endianness_
 Working on native endianness. More...
 
XCDRVersion xcdr_version_
 XCDR version to use. More...
 

Detailed Description

CDR(Common Data Representation) Deserializer implementation.

Note
This is a Plain CDR deserializer

Constructor & Destructor Documentation

◆ Deserializer() [1/3]

eprosima::safedds::serialization::cdr::Deserializer::Deserializer ( const memory::IConstByteArrayView buffer,
platform::Endianness  endianness,
XCDRVersion  xcdr_version 
)
explicitnoexcept

Deserializer constructor.

Parameters
[in]bufferconst view of the deserialization buffer. Ownership is not taken.
endiannessendianness to use.
xcdr_versionXCDR version to use.

◆ ~Deserializer()

virtual eprosima::safedds::serialization::cdr::Deserializer::~Deserializer ( )
virtualdefaultnoexcept

Virtual destructor.

◆ Deserializer() [2/3]

eprosima::safedds::serialization::cdr::Deserializer::Deserializer ( const Deserializer )
deletenoexcept

Copy deleted.

◆ Deserializer() [3/3]

eprosima::safedds::serialization::cdr::Deserializer::Deserializer ( Deserializer &&  )
deletenoexcept

Movement deleted.

Member Function Documentation

◆ deserialize() [1/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( bool &  value)
overridevirtualnoexcept

Deserialize a single bool.

Parameters
[out]valuebool variable to deserialize.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize() [2/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( char &  value)
overridevirtualnoexcept

Deserialize a single variable, implementations for each supported type: char bool uint8_t uint16_t uint32_t uint64_t int8_t int16_t int32_t int64_t float double.

Parameters
[out]valuevariable to save deserialized value
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize() [3/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( double &  value)
overridevirtualnoexcept

Deserialize a single double.

Parameters
[out]valuedouble to deserialize.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize() [4/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( float &  value)
overridevirtualnoexcept

Deserialize a single float.

Parameters
[out]valuefloat to deserialize.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize() [5/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( int16_t &  value)
overridevirtualnoexcept

Deserialize a single int16_t.

Parameters
[out]valueint16_t to deserialize.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize() [6/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( int32_t &  value)
overridevirtualnoexcept

Deserialize a single int32_t.

Parameters
[out]valueint32_t to deserialize.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize() [7/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( int64_t &  value)
overridevirtualnoexcept

Deserialize a single int64_t.

Parameters
[out]valueint64_t to deserialize.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize() [8/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( int8_t &  value)
overridevirtualnoexcept

Deserialize a single int8_t.

Parameters
[out]valueint8_t to deserialize.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize() [9/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( uint16_t &  value)
overridevirtualnoexcept

Deserialize a single uint16_t.

Parameters
[out]valueuint16_t to deserialize.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize() [10/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( uint32_t &  value)
overridevirtualnoexcept

Deserialize a single uint32_t.

Parameters
[out]valueuint32_t to deserialize.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize() [11/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( uint64_t &  value)
overridevirtualnoexcept

Deserialize a single uint64_t.

Parameters
[out]valueuint64_t to deserialize.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize() [12/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( uint8_t &  value)
overridevirtualnoexcept

Deserialize a single uint8_t.

Parameters
[out]valueuint8_t to deserialize.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize() [13/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize ( uint8_t *  bytes,
uint32_t  type_size 
)
protectednoexcept

Deserialize a single value.

Parameters
[out]bytespointer to output value.
type_sizetype size of the value.
Returns
ReturnCode

◆ deserialize_array() [1/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( bool *  value,
uint32_t  size 
)
overridevirtualnoexcept

Deserialize bool array:

Parameters
valuepointer to output deserialized array.
sizesize of the array.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_array() [2/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( char *  value,
uint32_t  size 
)
overridevirtualnoexcept

Deserialize array, implementations for each supported type: char bool uint8_t uint16_t uint32_t uint64_t int8_t int16_t int32_t int64_t float double.

Parameters
valuepointer to store deserialized array
sizesize of the array.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_array() [3/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( double *  value,
uint32_t  size 
)
overridevirtualnoexcept

Deserialize double array:

Parameters
valuepointer to output deserialized array.
sizesize of the array.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_array() [4/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( float *  value,
uint32_t  size 
)
overridevirtualnoexcept

Deserialize float array:

Parameters
valuepointer to output deserialized array.
sizesize of the array.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_array() [5/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( int16_t *  value,
uint32_t  size 
)
overridevirtualnoexcept

Deserialize int16_t array:

Parameters
valuepointer to output deserialized array.
sizesize of the array.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_array() [6/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( int32_t *  value,
uint32_t  size 
)
overridevirtualnoexcept

Deserialize int32_t array:

Parameters
valuepointer to output deserialized array.
sizesize of the array.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_array() [7/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( int64_t *  value,
uint32_t  size 
)
overridevirtualnoexcept

Deserialize int64_t array:

Parameters
valuepointer to output deserialized array.
sizesize of the array.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_array() [8/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( int8_t *  value,
uint32_t  size 
)
overridevirtualnoexcept

Deserialize int8_t array:

Parameters
valuepointer to output deserialized array.
sizesize of the array.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_array() [9/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( uint16_t *  value,
uint32_t  size 
)
overridevirtualnoexcept

Deserialize uint16_t array:

Parameters
valuepointer to output deserialized array.
sizesize of the array.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_array() [10/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( uint32_t *  value,
uint32_t  size 
)
overridevirtualnoexcept

Deserialize uint32_t array:

Parameters
valuepointer to output deserialized array.
sizesize of the array.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_array() [11/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( uint64_t *  value,
uint32_t  size 
)
overridevirtualnoexcept

Deserialize uint64_t array:

Parameters
valuepointer to output deserialized array.
sizesize of the array.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_array() [12/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( uint8_t *  bytes,
uint32_t  size,
uint32_t  type_size 
)
protectednoexcept

Deserialize array.

Parameters
[out]bytespointer to output array.
sizesize of the array that is going to be deserialized.
type_sizetype size of each value.
Returns
ReturnCode

◆ deserialize_array() [13/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_array ( uint8_t *  value,
uint32_t  size 
)
overridevirtualnoexcept

Deserialize uint8_t array:

Parameters
valuepointer to output deserialized array.
sizesize of the array.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_sequence() [1/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( bool *  value,
uint32_t  capacity,
uint32_t &  size 
)
overridevirtualnoexcept

Deserialize bool sequence.

Parameters
[out]valuepointer to store deserialized sequence.
capacityavailable capacity on the value pointer.
[out]size: deserialized sequence size.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_sequence() [2/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( char *  value,
uint32_t  capacity,
uint32_t &  size 
)
overridevirtualnoexcept

Deserialize sequence, implementations for each supported type: char bool uint8_t uint16_t uint32_t uint64_t int8_t int16_t int32_t int64_t float double.

Parameters
[out]valuepointer to store deserialized sequence.
capacityavailable capacity on the value pointer.
[out]size: deserialized sequence size.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_sequence() [3/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( double *  value,
uint32_t  capacity,
uint32_t &  size 
)
overridevirtualnoexcept

Deserialize double sequence.

Parameters
[out]valuepointer to store deserialized sequence.
capacityavailable capacity on the value pointer.
[out]size: deserialized sequence size.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_sequence() [4/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( float *  value,
uint32_t  capacity,
uint32_t &  size 
)
overridevirtualnoexcept

Deserialize float sequence.

Parameters
[out]valuepointer to store deserialized sequence.
capacityavailable capacity on the value pointer.
[out]size: deserialized sequence size.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_sequence() [5/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( int16_t *  value,
uint32_t  capacity,
uint32_t &  size 
)
overridevirtualnoexcept

Deserialize int16_t sequence.

Parameters
[out]valuepointer to store deserialized sequence.
capacityavailable capacity on the value pointer.
[out]size: deserialized sequence size.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_sequence() [6/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( int32_t *  value,
uint32_t  capacity,
uint32_t &  size 
)
overridevirtualnoexcept

Deserialize int32_t sequence.

Parameters
[out]valuepointer to store deserialized sequence.
capacityavailable capacity on the value pointer.
[out]size: deserialized sequence size.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_sequence() [7/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( int64_t *  value,
uint32_t  capacity,
uint32_t &  size 
)
overridevirtualnoexcept

Deserialize int64_t sequence.

Parameters
[out]valuepointer to store deserialized sequence.
capacityavailable capacity on the value pointer.
[out]size: deserialized sequence size.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_sequence() [8/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( int8_t *  value,
uint32_t  capacity,
uint32_t &  size 
)
overridevirtualnoexcept

Deserialize int8_t sequence.

Parameters
[out]valuepointer to store deserialized sequence.
capacityavailable capacity on the value pointer.
[out]size: deserialized sequence size.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_sequence() [9/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( uint16_t *  value,
uint32_t  capacity,
uint32_t &  size 
)
overridevirtualnoexcept

Deserialize uint16_t sequence.

Parameters
[out]valuepointer to store deserialized sequence.
capacityavailable capacity on the value pointer.
[out]size: deserialized sequence size.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_sequence() [10/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( uint32_t *  value,
uint32_t  capacity,
uint32_t &  size 
)
overridevirtualnoexcept

Deserialize uint32_t sequence.

Parameters
[out]valuepointer to store deserialized sequence.
capacityavailable capacity on the value pointer.
[out]size: deserialized sequence size.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_sequence() [11/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( uint64_t *  value,
uint32_t  capacity,
uint32_t &  size 
)
overridevirtualnoexcept

Deserialize uint64_t sequence.

Parameters
[out]valuepointer to store deserialized sequence.
capacityavailable capacity on the value pointer.
[out]size: deserialized sequence size.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserialize_sequence() [12/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( uint8_t *  bytes,
uint32_t  capacity,
uint32_t &  size,
uint32_t  type_size 
)
protectednoexcept

Deserialize sequence.

Parameters
[out]bytespointer to output sequence.
capacityavailable capacity on the bytes pointer.
[out]sizedeserialized sequence size.
type_sizetype size of each value in the sequence.
Returns
ReturnCode

◆ deserialize_sequence() [13/13]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserialize_sequence ( uint8_t *  value,
uint32_t  capacity,
uint32_t &  size 
)
overridevirtualnoexcept

Deserialize uint8_t sequence.

Parameters
[out]valuepointer to store deserialized sequence.
capacityavailable capacity on the value pointer.
[out]size: deserialized sequence size.
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserializer_remaining_size()

uint32_t eprosima::safedds::serialization::cdr::Deserializer::deserializer_remaining_size ( ) const
overridevirtualnoexcept

Returns remaining available size of deserializer.

Returns
Remaining size

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserializer_size()

uint32_t eprosima::safedds::serialization::cdr::Deserializer::deserializer_size ( ) const
overridevirtualnoexcept

Returns size of deserializer.

Returns
Deserializer size

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserializer_skip() [1/2]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserializer_skip ( uint32_t  size)
overridevirtualnoexcept

Skips slice in deserialization process.

Parameters
sizesize to skip
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserializer_skip() [2/2]

ReturnCode eprosima::safedds::serialization::cdr::Deserializer::deserializer_skip ( uint32_t  size,
memory::IConstMutableByteArrayView view 
)
overridevirtualnoexcept

Skips slice in deserialization process and returns skipped slice to the user.

Parameters
sizesize to skip
[out]viewskiped view
Returns
ReturnCode

Implements eprosima::safedds::serialization::IDeserializer.

◆ deserializer_used_size()

uint32_t eprosima::safedds::serialization::cdr::Deserializer::deserializer_used_size ( ) const
overridevirtualnoexcept

Gets deserializer used size.

Returns
Used size

Implements eprosima::safedds::serialization::IDeserializer.

◆ get_endianness()

platform::Endianness eprosima::safedds::serialization::cdr::Deserializer::get_endianness ( ) const
overridevirtualnoexcept

Gets deserializer endianness.

Returns
Endianness

Implements eprosima::safedds::serialization::IDeserializer.

◆ operator=() [1/2]

Deserializer& eprosima::safedds::serialization::cdr::Deserializer::operator= ( const Deserializer )
deletenoexcept

Copy operator deleted.

◆ operator=() [2/2]

Deserializer& eprosima::safedds::serialization::cdr::Deserializer::operator= ( Deserializer &&  )
deletenoexcept

Movement operator deleted due private references.

◆ perform_deserialization()

void eprosima::safedds::serialization::cdr::Deserializer::perform_deserialization ( uint8_t *  bytes,
uint32_t  num_bytes,
uint32_t  padding 
)
protectednoexcept

Deserialize data from internal buffer.

Parameters
bytespointer to store deserialized data.
num_bytessize of the data that is going to be deserialized.
paddingpadding to add before deserializing the data.

◆ perform_deserialization_no_native()

void eprosima::safedds::serialization::cdr::Deserializer::perform_deserialization_no_native ( uint8_t *  bytes,
uint32_t  num_bytes,
uint32_t  endianness_group,
uint32_t  padding 
)
protectednoexcept

Deserialize data from internal buffer without using native endianness.

Parameters
bytespointer to store deserialized data.
num_bytessize of the data that is going to be deserialized.
endianness_groupendianness group to use.
paddingpadding to add before deserializing the data.

◆ reset_alignment()

void eprosima::safedds::serialization::cdr::Deserializer::reset_alignment ( )
overridevirtualnoexcept

Resets serializer alignment.

Implements eprosima::safedds::serialization::IDeserializer.

◆ xcdr_padding_needed()

uint32_t eprosima::safedds::serialization::cdr::Deserializer::xcdr_padding_needed ( uint32_t  pos,
uint32_t  size 
)
protectednoexcept

Gets the padding needed to align an element given the current position, its size and the deserializer XCDR version.

Parameters
posposition of the value.
sizesize, size MUST be power of 2.
Returns
padding.

Member Data Documentation

◆ alignment_position_

uint32_t eprosima::safedds::serialization::cdr::Deserializer::alignment_position_ = 0
protected

Alignment position.

◆ buffer_

const memory::IConstByteArrayView& eprosima::safedds::serialization::cdr::Deserializer::buffer_
protected

Internal buffer View.

◆ endianness_

platform::Endianness eprosima::safedds::serialization::cdr::Deserializer::endianness_
protected

Endianness to use.

◆ native_endianness_

const bool eprosima::safedds::serialization::cdr::Deserializer::native_endianness_
protected

Working on native endianness.

◆ position_

uint32_t eprosima::safedds::serialization::cdr::Deserializer::position_ = 0
protected

Position in the View.

◆ xcdr_version_

XCDRVersion eprosima::safedds::serialization::cdr::Deserializer::xcdr_version_
protected

XCDR version to use.


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