|
Safe DDS
|
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... | |
| Deserializer & | operator= (const Deserializer &) noexcept=delete |
| Copy operator deleted. More... | |
| Deserializer & | operator= (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... | |
| IDeserializer & | operator= (const IDeserializer &) noexcept=delete |
| Copy operator deleted. More... | |
| IDeserializer & | operator= (IDeserializer &&) noexcept=delete |
| Movement operator deleted. More... | |
Protected Attributes | |
| const memory::IConstByteArrayView & | buffer_ |
| 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... | |
CDR(Common Data Representation) Deserializer implementation.
|
explicitnoexcept |
Deserializer constructor.
| [in] | buffer | const view of the deserialization buffer. Ownership is not taken. |
| endianness | endianness to use. | |
| xcdr_version | XCDR version to use. |
|
virtualdefaultnoexcept |
Virtual destructor.
|
deletenoexcept |
Copy deleted.
|
deletenoexcept |
Movement deleted.
|
overridevirtualnoexcept |
Deserialize a single bool.
| [out] | value | bool variable to deserialize. |
Implements eprosima::safedds::serialization::IDeserializer.
|
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.
| [out] | value | variable to save deserialized value |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize a single double.
| [out] | value | double to deserialize. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize a single float.
| [out] | value | float to deserialize. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize a single int16_t.
| [out] | value | int16_t to deserialize. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize a single int32_t.
| [out] | value | int32_t to deserialize. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize a single int64_t.
| [out] | value | int64_t to deserialize. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize a single int8_t.
| [out] | value | int8_t to deserialize. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize a single uint16_t.
| [out] | value | uint16_t to deserialize. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize a single uint32_t.
| [out] | value | uint32_t to deserialize. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize a single uint64_t.
| [out] | value | uint64_t to deserialize. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize a single uint8_t.
| [out] | value | uint8_t to deserialize. |
Implements eprosima::safedds::serialization::IDeserializer.
|
protectednoexcept |
Deserialize a single value.
| [out] | bytes | pointer to output value. |
| type_size | type size of the value. |
|
overridevirtualnoexcept |
Deserialize bool array:
| value | pointer to output deserialized array. |
| size | size of the array. |
Implements eprosima::safedds::serialization::IDeserializer.
|
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.
| value | pointer to store deserialized array |
| size | size of the array. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize double array:
| value | pointer to output deserialized array. |
| size | size of the array. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize float array:
| value | pointer to output deserialized array. |
| size | size of the array. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize int16_t array:
| value | pointer to output deserialized array. |
| size | size of the array. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize int32_t array:
| value | pointer to output deserialized array. |
| size | size of the array. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize int64_t array:
| value | pointer to output deserialized array. |
| size | size of the array. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize int8_t array:
| value | pointer to output deserialized array. |
| size | size of the array. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize uint16_t array:
| value | pointer to output deserialized array. |
| size | size of the array. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize uint32_t array:
| value | pointer to output deserialized array. |
| size | size of the array. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize uint64_t array:
| value | pointer to output deserialized array. |
| size | size of the array. |
Implements eprosima::safedds::serialization::IDeserializer.
|
protectednoexcept |
Deserialize array.
| [out] | bytes | pointer to output array. |
| size | size of the array that is going to be deserialized. | |
| type_size | type size of each value. |
|
overridevirtualnoexcept |
Deserialize uint8_t array:
| value | pointer to output deserialized array. |
| size | size of the array. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize bool sequence.
| [out] | value | pointer to store deserialized sequence. |
| capacity | available capacity on the value pointer. | |
| [out] | size | : deserialized sequence size. |
Implements eprosima::safedds::serialization::IDeserializer.
|
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.
| [out] | value | pointer to store deserialized sequence. |
| capacity | available capacity on the value pointer. | |
| [out] | size | : deserialized sequence size. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize double sequence.
| [out] | value | pointer to store deserialized sequence. |
| capacity | available capacity on the value pointer. | |
| [out] | size | : deserialized sequence size. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize float sequence.
| [out] | value | pointer to store deserialized sequence. |
| capacity | available capacity on the value pointer. | |
| [out] | size | : deserialized sequence size. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize int16_t sequence.
| [out] | value | pointer to store deserialized sequence. |
| capacity | available capacity on the value pointer. | |
| [out] | size | : deserialized sequence size. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize int32_t sequence.
| [out] | value | pointer to store deserialized sequence. |
| capacity | available capacity on the value pointer. | |
| [out] | size | : deserialized sequence size. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize int64_t sequence.
| [out] | value | pointer to store deserialized sequence. |
| capacity | available capacity on the value pointer. | |
| [out] | size | : deserialized sequence size. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize int8_t sequence.
| [out] | value | pointer to store deserialized sequence. |
| capacity | available capacity on the value pointer. | |
| [out] | size | : deserialized sequence size. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize uint16_t sequence.
| [out] | value | pointer to store deserialized sequence. |
| capacity | available capacity on the value pointer. | |
| [out] | size | : deserialized sequence size. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize uint32_t sequence.
| [out] | value | pointer to store deserialized sequence. |
| capacity | available capacity on the value pointer. | |
| [out] | size | : deserialized sequence size. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Deserialize uint64_t sequence.
| [out] | value | pointer to store deserialized sequence. |
| capacity | available capacity on the value pointer. | |
| [out] | size | : deserialized sequence size. |
Implements eprosima::safedds::serialization::IDeserializer.
|
protectednoexcept |
Deserialize sequence.
| [out] | bytes | pointer to output sequence. |
| capacity | available capacity on the bytes pointer. | |
| [out] | size | deserialized sequence size. |
| type_size | type size of each value in the sequence. |
|
overridevirtualnoexcept |
Deserialize uint8_t sequence.
| [out] | value | pointer to store deserialized sequence. |
| capacity | available capacity on the value pointer. | |
| [out] | size | : deserialized sequence size. |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Returns remaining available size of deserializer.
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Returns size of deserializer.
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Skips slice in deserialization process.
| size | size to skip |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Skips slice in deserialization process and returns skipped slice to the user.
| size | size to skip | |
| [out] | view | skiped view |
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Gets deserializer used size.
Implements eprosima::safedds::serialization::IDeserializer.
|
overridevirtualnoexcept |
Gets deserializer endianness.
Implements eprosima::safedds::serialization::IDeserializer.
|
deletenoexcept |
Copy operator deleted.
|
deletenoexcept |
Movement operator deleted due private references.
|
protectednoexcept |
Deserialize data from internal buffer.
| bytes | pointer to store deserialized data. |
| num_bytes | size of the data that is going to be deserialized. |
| padding | padding to add before deserializing the data. |
|
protectednoexcept |
Deserialize data from internal buffer without using native endianness.
| bytes | pointer to store deserialized data. |
| num_bytes | size of the data that is going to be deserialized. |
| endianness_group | endianness group to use. |
| padding | padding to add before deserializing the data. |
|
overridevirtualnoexcept |
Resets serializer alignment.
Implements eprosima::safedds::serialization::IDeserializer.
|
protectednoexcept |
Gets the padding needed to align an element given the current position, its size and the deserializer XCDR version.
| pos | position of the value. |
| size | size, size MUST be power of 2. |
|
protected |
Alignment position.
|
protected |
Internal buffer View.
|
protected |
Endianness to use.
|
protected |
Working on native endianness.
|
protected |
Position in the View.
|
protected |
XCDR version to use.