|
Safe DDS
|
CDR(Common Data Representation) Serializer implementation. More...
#include <Serializer.hpp>
Public Member Functions | |
| Serializer (memory::IByteArrayView &buffer, platform::Endianness endianness, XCDRVersion xcdr_version) noexcept | |
| Serializer constructor. More... | |
| Serializer (platform::Endianness endianness, XCDRVersion xcdr_version) noexcept | |
| Serializer constructor for emulated serialization. More... | |
| virtual | ~Serializer () noexcept=default |
| Virtual destructor. More... | |
| Serializer (const Serializer &) noexcept=delete | |
| Copy deleted. More... | |
| Serializer (Serializer &&) noexcept=delete | |
| Movement deleted. More... | |
| Serializer & | operator= (const Serializer &) noexcept=delete |
| Copy operator deleted. More... | |
| Serializer & | operator= (Serializer &&) noexcept=delete |
| Movement operator deleted due private references. More... | |
| ReturnCode | serializer_skip (uint32_t size) noexcept override |
| Skips slice in serialization process. More... | |
| ReturnCode | serializer_align_to (uint32_t type_size) noexcept override |
| Aligns serializer position. More... | |
| uint32_t | serializer_remaining_size () noexcept override |
| Returns remaining available size of serializer. More... | |
| uint32_t | serializer_used_size () noexcept override |
| Gets serializer used size. More... | |
| void | reset_alignment () noexcept override |
| Resets serializer alignment. More... | |
| ReturnCode | serialize (char value) noexcept override |
| Serialize 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 | serialize (bool value) noexcept override |
| Serialize a single bool. More... | |
| ReturnCode | serialize (uint8_t value) noexcept override |
| Serialize a single uint8_t. More... | |
| ReturnCode | serialize (uint16_t value) noexcept override |
| Serialize a single uint16_t. More... | |
| ReturnCode | serialize (uint32_t value) noexcept override |
| Serialize a single uint32_t. More... | |
| ReturnCode | serialize (uint64_t value) noexcept override |
| Serialize a single uint64_t. More... | |
| ReturnCode | serialize (int8_t value) noexcept override |
| Serialize a single int8_t. More... | |
| ReturnCode | serialize (int16_t value) noexcept override |
| Serialize a single int16_t. More... | |
| ReturnCode | serialize (int32_t value) noexcept override |
| Serialize a single int32_t. More... | |
| ReturnCode | serialize (int64_t value) noexcept override |
| Serialize a single int64_t. More... | |
| ReturnCode | serialize (float value) noexcept override |
| Serialize a single float. More... | |
| ReturnCode | serialize (double value) noexcept override |
| Serialize a single double. More... | |
| ReturnCode | serialize_array (const char *value, uint32_t size) noexcept override |
| Serialize 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 | serialize_array (const bool *value, uint32_t size) noexcept override |
| Serialize bool array. More... | |
| ReturnCode | serialize_array (const uint8_t *value, uint32_t size) noexcept override |
| Serialize uint8_t array. More... | |
| ReturnCode | serialize_array (const uint16_t *value, uint32_t size) noexcept override |
| Serialize uint16_t array. More... | |
| ReturnCode | serialize_array (const uint32_t *value, uint32_t size) noexcept override |
| Serialize uint32_t array. More... | |
| ReturnCode | serialize_array (const uint64_t *value, uint32_t size) noexcept override |
| Serialize uint64_t array. More... | |
| ReturnCode | serialize_array (const int8_t *value, uint32_t size) noexcept override |
| Serialize int8_t array. More... | |
| ReturnCode | serialize_array (const int16_t *value, uint32_t size) noexcept override |
| Serialize int16_t array. More... | |
| ReturnCode | serialize_array (const int32_t *value, uint32_t size) noexcept override |
| Serialize int32_t array. More... | |
| ReturnCode | serialize_array (const int64_t *value, uint32_t size) noexcept override |
| Serialize int64_t array. More... | |
| ReturnCode | serialize_array (const float *value, uint32_t size) noexcept override |
| Serialize float array. More... | |
| ReturnCode | serialize_array (const double *value, uint32_t size) noexcept override |
| Serialize double array. More... | |
| ReturnCode | serialize_sequence (const char *value, uint32_t size) noexcept override |
| Serialize 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 | serialize_sequence (const bool *value, uint32_t size) noexcept override |
| Serialize bool sequence. More... | |
| ReturnCode | serialize_sequence (const uint8_t *value, uint32_t size) noexcept override |
| Serialize uint8_t sequence. More... | |
| ReturnCode | serialize_sequence (const uint16_t *value, uint32_t size) noexcept override |
| Serialize uint16_t sequence. More... | |
| ReturnCode | serialize_sequence (const uint32_t *value, uint32_t size) noexcept override |
| Serialize uint32_t sequence. More... | |
| ReturnCode | serialize_sequence (const uint64_t *value, uint32_t size) noexcept override |
| Serialize uint64_t sequence. More... | |
| ReturnCode | serialize_sequence (const int8_t *value, uint32_t size) noexcept override |
| Serialize int8_t sequence. More... | |
| ReturnCode | serialize_sequence (const int16_t *value, uint32_t size) noexcept override |
| Serialize int16_t sequence. More... | |
| ReturnCode | serialize_sequence (const int32_t *value, uint32_t size) noexcept override |
| Serialize int32_t sequence. More... | |
| ReturnCode | serialize_sequence (const int64_t *value, uint32_t size) noexcept override |
| Serialize int64_t sequence. More... | |
| ReturnCode | serialize_sequence (const float *value, uint32_t size) noexcept override |
| Serialize float sequence. More... | |
| ReturnCode | serialize_sequence (const double *value, uint32_t size) noexcept override |
| Serialize double sequence. More... | |
Protected Member Functions | |
| ReturnCode | serialize (const uint8_t *bytes, uint32_t type_size) noexcept |
| Serialize a single value. More... | |
| ReturnCode | serialize_array (const uint8_t *bytes, uint32_t size, uint32_t type_size) noexcept |
| Serialize array. More... | |
| ReturnCode | serialize_sequence (const uint8_t *bytes, uint32_t size, uint32_t type_size) noexcept |
| Serialize sequence. More... | |
| void | perform_serialization (const uint8_t *bytes, uint32_t num_bytes, uint32_t padding) noexcept |
| Serialize data into internal buffer. More... | |
| void | perform_serialization_no_native (const uint8_t *bytes, uint32_t num_bytes, uint32_t endianness_group, uint32_t padding) noexcept |
| Serialize data into internal buffer without using native endianness. More... | |
| uint32_t | buffer_size () const noexcept |
| Get inner buffer size. 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 serializer XCDR version. More... | |
Protected Member Functions inherited from eprosima::safedds::serialization::ISerializer | |
| ~ISerializer () noexcept=default | |
| Protected destructor ownership defined on creation. More... | |
| ISerializer () noexcept=default | |
| Default creation. More... | |
| ISerializer (const ISerializer &) noexcept=delete | |
| Copy deleted. More... | |
| ISerializer (ISerializer &&) noexcept=delete | |
| Movement deleted. More... | |
| ISerializer & | operator= (const ISerializer &) noexcept=delete |
| Copy operator deleted. More... | |
| ISerializer & | operator= (ISerializer &&) noexcept=delete |
| Movement operator deleted. More... | |
Protected Attributes | |
| memory::IByteArrayView & | buffer_ |
| Internal buffer view. More... | |
| uint32_t | position_ = 0 |
| Position in the view. More... | |
| uint32_t | alignment_position_ = 0 |
| Alignment position. More... | |
| bool | native_endianness_ = true |
| Working on native endianness. More... | |
| XCDRVersion | xcdr_version_ = XCDRVersion::XCDRV1 |
| XCDR version to use. More... | |
| bool | emulated_serialization_ = false |
| Emulated serialization flag. More... | |
| memory::byte_array::ByteArrayView | emulated_buffer_ |
| Emulated serialization buffer. More... | |
CDR(Common Data Representation) Serializer implementation.
|
explicitnoexcept |
Serializer constructor.
| [in,out] | buffer | view of the serialization buffer. Ownership is not taken. |
| endianness | endianness to use. | |
| xcdr_version | XCDR version to use. |
|
explicitnoexcept |
Serializer constructor for emulated serialization.
| endianness | endianness to use. |
| xcdr_version | XCDR version to use. |
|
virtualdefaultnoexcept |
Virtual destructor.
|
deletenoexcept |
Copy deleted.
|
deletenoexcept |
Movement deleted.
|
protectednoexcept |
Get inner buffer size.
|
deletenoexcept |
Copy operator deleted.
|
deletenoexcept |
Movement operator deleted due private references.
|
protectednoexcept |
Serialize data into internal buffer.
| bytes | pointer to data to serialize. |
| num_bytes | size of the data that is going to be serialized. |
| padding | padding to add before serializing the data. |
|
protectednoexcept |
Serialize data into internal buffer without using native endianness.
| bytes | pointer to data to serialize. |
| num_bytes | size of the data that is going to be serialized. |
| endianness_group | endianness group to use. |
| padding | padding to add before serializing the data. |
|
overridevirtualnoexcept |
Resets serializer alignment.
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize a single bool.
| value | variable to serialize. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize 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.
| value | variable to serialize. |
Implements eprosima::safedds::serialization::ISerializer.
|
protectednoexcept |
Serialize a single value.
| bytes | pointer to value. |
| type_size | type size of the value. |
|
overridevirtualnoexcept |
Serialize a single double.
| value | variable to serialize. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize a single float.
| value | variable to serialize. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize a single int16_t.
| value | variable to serialize. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize a single int32_t.
| value | variable to serialize. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize a single int64_t.
| value | variable to serialize. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize a single int8_t.
| value | variable to serialize. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize a single uint16_t.
| value | variable to serialize. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize a single uint32_t.
| value | variable to serialize. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize a single uint64_t.
| value | variable to serialize. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize a single uint8_t.
| value | variable to serialize. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize bool array.
| [in] | value | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize 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.
| [in] | value | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize double array.
| [in] | value | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize float array.
| [in] | value | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize int16_t array.
| [in] | value | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize int32_t array.
| [in] | value | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize int64_t array.
| [in] | value | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize int8_t array.
| [in] | value | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize uint16_t array.
| [in] | value | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize uint32_t array.
| [in] | value | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize uint64_t array.
| [in] | value | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
Implements eprosima::safedds::serialization::ISerializer.
|
protectednoexcept |
Serialize array.
| bytes | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
| type_size | type size of each value in the array. |
|
overridevirtualnoexcept |
Serialize uint8_t array.
| [in] | value | pointer to array to serialize. |
| size | size of the array that is going to be serialized. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize bool sequence.
| [in] | value | pointer to sequence to serialize. |
| size | serialized size. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize 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.
| [in] | value | pointer to sequence to serialize. |
| size | serialized size. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize double sequence.
| [in] | value | pointer to sequence to serialize. |
| size | serialized size. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize float sequence.
| [in] | value | pointer to sequence to serialize. |
| size | serialized size. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize int16_t sequence.
| [in] | value | pointer to sequence to serialize. |
| size | serialized size. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize int32_t sequence.
| [in] | value | pointer to sequence to serialize. |
| size | serialized size. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize int64_t sequence.
| [in] | value | pointer to sequence to serialize. |
| size | serialized size. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize int8_t sequence.
| [in] | value | pointer to sequence to serialize. |
| size | serialized size. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize uint16_t sequence.
| [in] | value | pointer to sequence to serialize. |
| size | serialized size. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize uint32_t sequence.
| [in] | value | pointer to sequence to serialize. |
| size | serialized size. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Serialize uint64_t sequence.
| [in] | value | pointer to sequence to serialize. |
| size | serialized size. |
Implements eprosima::safedds::serialization::ISerializer.
|
protectednoexcept |
Serialize sequence.
| bytes | pointer to sequence to serialize. |
| type_size | type size of each value in the sequence. |
| size | size of the sequence that is serialized. |
|
overridevirtualnoexcept |
Serialize uint8_t sequence.
| [in] | value | pointer to sequence to serialize. |
| size | serialized size. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Aligns serializer position.
| type_size | type size. |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Returns remaining available size of serializer.
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Skips slice in serialization process.
| size | size to skip |
Implements eprosima::safedds::serialization::ISerializer.
|
overridevirtualnoexcept |
Gets serializer used size.
Implements eprosima::safedds::serialization::ISerializer.
|
protectednoexcept |
Gets the padding needed to align an element given the current position, its size and the serializer XCDR version.
| pos | position of the value. |
| size | size, size MUST be power of 2. |
|
protected |
Alignment position.
|
protected |
Internal buffer view.
|
protected |
Emulated serialization buffer.
|
protected |
Emulated serialization flag.
|
protected |
Working on native endianness.
|
protected |
Position in the view.
|
protected |
XCDR version to use.