Fast CDR  Version 2.2.1
Fast CDR
Loading...
Searching...
No Matches

This class offers an interface to serialize/deserialize some basic types using CDR protocol inside an eprosima::fastcdr::FastBuffer. More...

#include <Cdr.h>

Classes

class  state
 This class stores the current state of a CDR serialization. More...
 

Public Types

enum  Endianness : uint8_t { BIG_ENDIANNESS = 0x0 , LITTLE_ENDIANNESS = 0x1 }
 This enumeration represents endianness types. More...
 
enum  XCdrHeaderSelection { SHORT_HEADER , LONG_HEADER , AUTO_WITH_SHORT_HEADER_BY_DEFAULT , AUTO_WITH_LONG_HEADER_BY_DEFAULT }
 Used to decide, in encoding algorithms where member headers support a short header version and a long header version, which one will be used. More...
 

Public Member Functions

Cdr_DllAPI Cdr (FastBuffer &cdr_buffer, const Endianness endianness=DEFAULT_ENDIAN, const CdrVersion cdr_version=XCDRv2)
 This constructor creates an eprosima::fastcdr::Cdr object that can serialize/deserialize the assigned buffer.
 
Cdr_DllAPI Cdrread_encapsulation ()
 This function reads the encapsulation of the CDR stream.
 
Cdr_DllAPI Cdrserialize_encapsulation ()
 This function writes the encapsulation of the CDR stream.
 
Cdr_DllAPI CdrVersion get_cdr_version () const
 Retrieves the CdrVersion used by the instance.
 
Cdr_DllAPI EncodingAlgorithmFlag get_encoding_flag () const
 Returns the EncodingAlgorithmFlag set in the encapsulation when the CDR type is CdrVersion::DDS_CDR, CdrVersion::XCDRv1 or CdrVersion::XCDRv2.
 
Cdr_DllAPI bool set_encoding_flag (EncodingAlgorithmFlag encoding_flag)
 Sets the EncodingAlgorithmFlag for the encapsulation when the CDR type is CdrVersion::DDS_CDR, CdrVersion::XCDRv1 or CdrVersion::XCDRv2.
 
Cdr_DllAPI std::array< uint8_t, 2 > get_dds_cdr_options () const
 This function returns the option flags when the CDR type is eprosima::fastcdr::DDS_CDR.
 
Cdr_DllAPI void set_dds_cdr_options (const std::array< uint8_t, 2 > &options)
 This function sets the option flags when the CDR type is eprosima::fastcdr::DDS_CDR.
 
Cdr_DllAPI void change_endianness (Endianness endianness)
 This function sets the current endianness used by the CDR type.
 
Cdr_DllAPI Endianness endianness () const
 This function returns the current endianness used by the CDR type.
 
Cdr_DllAPI bool jump (size_t num_bytes)
 This function skips a number of bytes in the CDR stream buffer.
 
Cdr_DllAPI void reset ()
 This function resets the current position in the buffer to the beginning.
 
Cdr_DllAPI char * get_buffer_pointer ()
 This function returns the pointer to the current used buffer.
 
Cdr_DllAPI char * get_current_position ()
 This function returns the current position in the CDR stream.
 
Cdr_DllAPI size_t get_serialized_data_length () const
 This function returns the length of the serialized data inside the stream.
 
Cdr_DllAPI state get_state () const
 Returns the current state of the CDR serialization process.
 
Cdr_DllAPI void set_state (const state &state)
 Sets a previous state of the CDR serialization process;.
 
Cdr_DllAPI bool move_alignment_forward (size_t num_bytes)
 This function moves the alignment forward.
 
void reset_alignment ()
 This function resets the alignment to the current position in the buffer.
 
template<class _T >
Cdroperator<< (const _T &value)
 Encodes the value into the buffer.
 
template<class _T >
Cdroperator>> (_T &value)
 Decodes the value from the buffer.
 
template<class _T , typename std::enable_if<!std::is_enum< _T >::value >::type * = nullptr, typename = void>
Cdrserialize (const _T &value)
 Encodes the value of a type into the buffer.
 
template<class _T >
Cdrserialize (const _T &value, Endianness endianness)
 Encodes the value of a type with a different endianness.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, int32_t >::value >::type * = nullptr>
Cdrserialize (const _T &value)
 Encodes the value of a enumerator into the buffer.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, uint32_t >::value >::type * = nullptr>
Cdrserialize (const _T &value)
 Encodes the value of a enumerator into the buffer.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, int16_t >::value >::type * = nullptr>
Cdrserialize (const _T &value)
 Encodes the value of a enumerator into the buffer.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, uint16_t >::value >::type * = nullptr>
Cdrserialize (const _T &value)
 Encodes the value of a enumerator into the buffer.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, int8_t >::value >::type * = nullptr>
Cdrserialize (const _T &value)
 Encodes the value of a enumerator into the buffer.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, uint8_t >::value >::type * = nullptr>
Cdrserialize (const _T &value)
 Encodes the value of a enumerator into the buffer.
 
Cdr_DllAPI Cdrserialize (const uint8_t &octet_t)
 This function serializes an octet.
 
Cdr_DllAPI Cdrserialize (const char char_t)
 This function serializes a character.
 
Cdr_DllAPI Cdrserialize (const int8_t int8)
 This function serializes an int8_t.
 
Cdr_DllAPI Cdrserialize (const uint16_t ushort_t)
 This function serializes an unsigned short.
 
Cdr_DllAPI Cdrserialize (const int16_t short_t)
 This function serializes a short.
 
Cdr_DllAPI Cdrserialize (const uint32_t ulong_t)
 This function serializes an unsigned long.
 
Cdr_DllAPI Cdrserialize (const int32_t long_t)
 This function serializes a long.
 
Cdr_DllAPI Cdrserialize (const wchar_t wchar)
 This function serializes a wide-char.
 
Cdr_DllAPI Cdrserialize (const uint64_t ulonglong_t)
 This function serializes an unsigned long long.
 
Cdr_DllAPI Cdrserialize (const int64_t longlong_t)
 This function serializes a long long.
 
Cdr_DllAPI Cdrserialize (const float float_t)
 This function serializes a float.
 
Cdr_DllAPI Cdrserialize (const double double_t)
 This function serializes a double.
 
Cdr_DllAPI Cdrserialize (const long double ldouble_t)
 This function serializes a long double.
 
Cdr_DllAPI Cdrserialize (const bool bool_t)
 This function serializes a boolean.
 
Cdr_DllAPI Cdrserialize (char *string_t)
 This function serializes a string.
 
Cdr_DllAPI Cdrserialize (const char *string_t)
 This function serializes a string.
 
Cdr_DllAPI Cdrserialize (const wchar_t *string_t)
 This function serializes a wstring.
 
TEMPLATE_SPEC Cdrserialize (const std::string &string_t)
 This function serializes a std::string.
 
TEMPLATE_SPEC Cdrserialize (const std::wstring &string_t)
 This function serializes a std::wstring.
 
template<size_t MAX_CHARS>
Cdrserialize (const fixed_string< MAX_CHARS > &value)
 Encodes a eprosima::fastcdr::fixed_string in the buffer.
 
template<class _T , size_t _Size>
Cdrserialize (const std::array< _T, _Size > &array_t)
 This function template serializes an array.
 
template<class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrserialize (const std::vector< _T > &vector_t)
 This function template serializes a sequence of non-primitive.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrserialize (const std::vector< _T > &vector_t)
 This function template serializes a sequence of primitive.
 
TEMPLATE_SPEC Cdrserialize (const std::vector< bool > &vector_t)
 This function template serializes a sequence of booleans.
 
template<class _K , class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrserialize (const std::map< _K, _T > &map_t)
 This function template serializes a map of non-primitive.
 
template<class _K , class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrserialize (const std::map< _K, _T > &map_t)
 This function template serializes a map of primitive.
 
template<size_t N, typename std::enable_if<(N< 9) > ::type * = nullptr>
Cdrserialize (const std::bitset< N > &value)
 Encodes the value of a bitset into the buffer.
 
template<size_t N, typename std::enable_if<(8< N &&N< 17) > ::type * = nullptr>
Cdrserialize (const std::bitset< N > &value)
 
template<size_t N, typename std::enable_if<(16< N &&N< 33) > ::type * = nullptr>
Cdrserialize (const std::bitset< N > &value)
 
template<size_t N, typename std::enable_if<(32< N &&N< 65) > ::type * = nullptr>
Cdrserialize (const std::bitset< N > &value)
 
template<class _T >
Cdrserialize_array (const _T *value, size_t num_elements)
 Encodes an array of a type not managed by this encoder into the buffer.
 
template<class _T >
Cdrserialize_array (const _T *type_t, size_t num_elements, Endianness endianness)
 This function template serializes an array of non-basic objects with a different endianness.
 
TEMPLATE_SPEC Cdrserialize_array (const uint8_t *octet_t, size_t num_elements)
 This function serializes an array of octets.
 
Cdr_DllAPI Cdrserialize_array (const char *char_t, size_t num_elements)
 This function serializes an array of characters.
 
TEMPLATE_SPEC Cdrserialize_array (const int8_t *int8, size_t num_elements)
 This function serializes an array of int8_t.
 
TEMPLATE_SPEC Cdrserialize_array (const uint16_t *ushort_t, size_t num_elements)
 This function serializes an array of unsigned shorts.
 
Cdr_DllAPI Cdrserialize_array (const int16_t *short_t, size_t num_elements)
 This function serializes an array of shorts.
 
TEMPLATE_SPEC Cdrserialize_array (const uint32_t *ulong_t, size_t num_elements)
 This function serializes an array of unsigned longs.
 
Cdr_DllAPI Cdrserialize_array (const int32_t *long_t, size_t num_elements)
 This function serializes an array of longs.
 
Cdr_DllAPI Cdrserialize_array (const wchar_t *wchar, size_t num_elements)
 This function serializes an array of wide-chars.
 
TEMPLATE_SPEC Cdrserialize_array (const uint64_t *ulonglong_t, size_t num_elements)
 This function serializes an array of unsigned long longs.
 
Cdr_DllAPI Cdrserialize_array (const int64_t *longlong_t, size_t num_elements)
 This function serializes an array of long longs.
 
Cdr_DllAPI Cdrserialize_array (const float *float_t, size_t num_elements)
 This function serializes an array of floats.
 
Cdr_DllAPI Cdrserialize_array (const double *double_t, size_t num_elements)
 This function serializes an array of doubles.
 
Cdr_DllAPI Cdrserialize_array (const long double *ldouble_t, size_t num_elements)
 This function serializes an array of long doubles.
 
Cdr_DllAPI Cdrserialize_array (const bool *bool_t, size_t num_elements)
 This function serializes an array of booleans.
 
TEMPLATE_SPEC Cdrserialize_array (const std::string *string_t, size_t num_elements)
 This function serializes an array of strings.
 
TEMPLATE_SPEC Cdrserialize_array (const std::wstring *string_t, size_t num_elements)
 This function serializes an array of wide-strings.
 
template<size_t MAX_CHARS>
Cdrserialize_array (const fixed_string< MAX_CHARS > *value, size_t num_elements)
 Encodes an array of fixed strings.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrserialize_array (const std::vector< _T > &value)
 Encodes an std::vector of primitives as an array.
 
template<class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrserialize_array (const std::vector< _T > &value)
 Encodes an std::vector of non-primitives as an array.
 
template<class _T >
Cdrserialize_array (const std::vector< _T > &value, Endianness endianness)
 Encodes an std::vector as an array with a different endianness.
 
TEMPLATE_SPEC Cdrserialize_array (const std::vector< bool > &value)
 Encodes an std::vector of booleans as an array.
 
template<class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrserialize_sequence (const _T *sequence_t, size_t num_elements)
 This function template serializes a raw sequence of non-primitives.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrserialize_sequence (const _T *sequence_t, size_t num_elements)
 This function template serializes a raw sequence of primitives.
 
template<class _T >
Cdrserialize_sequence (const _T *sequence_t, size_t num_elements, Endianness endianness)
 This function template serializes a raw sequence with a different endianness.
 
template<class _T , typename std::enable_if<!std::is_enum< _T >::value >::type * = nullptr, typename = void>
Cdrdeserialize (_T &value)
 Decodes the value of a type from the buffer.
 
template<class _T >
Cdrdeserialize (_T &value, Endianness endianness)
 Decodes the value of a type with a different endianness.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, int32_t >::value >::type * = nullptr>
Cdrdeserialize (_T &value)
 Decodes an enumeration from the buffer.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, uint32_t >::value >::type * = nullptr>
Cdrdeserialize (_T &value)
 Decodes an enumeration from the buffer.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, int16_t >::value >::type * = nullptr>
Cdrdeserialize (_T &value)
 Decodes an enumeration from the buffer.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, uint16_t >::value >::type * = nullptr>
Cdrdeserialize (_T &value)
 Decodes an enumeration from the buffer.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, int8_t >::value >::type * = nullptr>
Cdrdeserialize (_T &value)
 Decodes an enumeration from the buffer.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, uint8_t >::value >::type * = nullptr>
Cdrdeserialize (_T &value)
 Decodes an enumeration from the buffer.
 
TEMPLATE_SPEC Cdrdeserialize (uint8_t &octet_t)
 This function deserializes an octet.
 
Cdr_DllAPI Cdrdeserialize (char &char_t)
 This function deserializes a character.
 
TEMPLATE_SPEC Cdrdeserialize (int8_t &int8)
 This function deserializes an int8_t.
 
TEMPLATE_SPEC Cdrdeserialize (uint16_t &ushort_t)
 This function deserializes an unsigned short.
 
Cdr_DllAPI Cdrdeserialize (int16_t &short_t)
 This function deserializes a short.
 
TEMPLATE_SPEC Cdrdeserialize (uint32_t &ulong_t)
 This function deserializes an unsigned long.
 
Cdr_DllAPI Cdrdeserialize (int32_t &long_t)
 This function deserializes a long.
 
TEMPLATE_SPEC Cdrdeserialize (wchar_t &wchar)
 This function deserializes a wide-char.
 
TEMPLATE_SPEC Cdrdeserialize (uint64_t &ulonglong_t)
 This function deserializes an unsigned long long.
 
Cdr_DllAPI Cdrdeserialize (int64_t &longlong_t)
 This function deserializes a long long.
 
Cdr_DllAPI Cdrdeserialize (float &float_t)
 This function deserializes a float.
 
Cdr_DllAPI Cdrdeserialize (double &double_t)
 This function deserializes a double.
 
Cdr_DllAPI Cdrdeserialize (long double &ldouble_t)
 This function deserializes a long double.
 
Cdr_DllAPI Cdrdeserialize (bool &bool_t)
 This function deserializes a boolean.
 
Cdr_DllAPI Cdrdeserialize (char *&string_t)
 This function deserializes a string.
 
Cdr_DllAPI Cdrdeserialize (wchar_t *&string_t)
 This function deserializes a wide-string.
 
TEMPLATE_SPEC Cdrdeserialize (std::string &string_t)
 This function deserializes a std::string.
 
TEMPLATE_SPEC Cdrdeserialize (std::wstring &string_t)
 This function deserializes a std::wstring.
 
template<size_t MAX_CHARS>
Cdrdeserialize (fixed_string< MAX_CHARS > &value)
 Decodes a fixed string.
 
template<class _T , size_t _Size>
Cdrdeserialize (std::array< _T, _Size > &array_t)
 This function template deserializes an array.
 
template<class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrdeserialize (std::vector< _T > &vector_t)
 This function template deserializes a sequence of non-primitive.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrdeserialize (std::vector< _T > &vector_t)
 This function template deserializes a sequence of primitive.
 
TEMPLATE_SPEC Cdrdeserialize (std::vector< bool > &vector_t)
 This function template deserializes a sequence.
 
template<class _K , class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrdeserialize (std::map< _K, _T > &map_t)
 This function template deserializes a map of non-primitive.
 
template<class _K , class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrdeserialize (std::map< _K, _T > &map_t)
 This function template deserializes a map of primitive.
 
template<size_t N, typename std::enable_if<(N< 9) > ::type * = nullptr>
Cdrdeserialize (std::bitset< N > &value)
 Decodes a bitset from the buffer.
 
template<size_t N, typename std::enable_if<(8< N &&N< 17) > ::type * = nullptr>
Cdrdeserialize (std::bitset< N > &value)
 
template<size_t N, typename std::enable_if<(16< N &&N< 33) > ::type * = nullptr>
Cdrdeserialize (std::bitset< N > &value)
 
template<size_t N, typename std::enable_if<(32< N &&N< 65) > ::type * = nullptr>
Cdrdeserialize (std::bitset< N > &value)
 
template<class _T >
Cdrdeserialize_array (_T *value, size_t num_elements)
 Decodes an array of a type not managed by this encoder from the buffer.
 
template<class _T >
Cdrdeserialize_array (_T *type_t, size_t num_elements, Endianness endianness)
 This function template deserializes an array of non-basic objects with a different endianness.
 
TEMPLATE_SPEC Cdrdeserialize_array (uint8_t *octet_t, size_t num_elements)
 This function deserializes an array of octets.
 
Cdr_DllAPI Cdrdeserialize_array (char *char_t, size_t num_elements)
 This function deserializes an array of characters.
 
TEMPLATE_SPEC Cdrdeserialize_array (int8_t *int8, size_t num_elements)
 This function deserializes an array of int8_t.
 
TEMPLATE_SPEC Cdrdeserialize_array (uint16_t *ushort_t, size_t num_elements)
 This function deserializes an array of unsigned shorts.
 
Cdr_DllAPI Cdrdeserialize_array (int16_t *short_t, size_t num_elements)
 This function deserializes an array of shorts.
 
TEMPLATE_SPEC Cdrdeserialize_array (uint32_t *ulong_t, size_t num_elements)
 This function deserializes an array of unsigned longs.
 
Cdr_DllAPI Cdrdeserialize_array (int32_t *long_t, size_t num_elements)
 This function deserializes an array of longs.
 
Cdr_DllAPI Cdrdeserialize_array (wchar_t *wchar, size_t num_elements)
 This function deserializes an array of wide-chars.
 
TEMPLATE_SPEC Cdrdeserialize_array (uint64_t *ulonglong_t, size_t num_elements)
 This function deserializes an array of unsigned long longs.
 
Cdr_DllAPI Cdrdeserialize_array (int64_t *longlong_t, size_t num_elements)
 This function deserializes an array of long longs.
 
Cdr_DllAPI Cdrdeserialize_array (float *float_t, size_t num_elements)
 This function deserializes an array of floats.
 
Cdr_DllAPI Cdrdeserialize_array (double *double_t, size_t num_elements)
 This function deserializes an array of doubles.
 
Cdr_DllAPI Cdrdeserialize_array (long double *ldouble_t, size_t num_elements)
 This function deserializes an array of long doubles.
 
Cdr_DllAPI Cdrdeserialize_array (bool *bool_t, size_t num_elements)
 This function deserializes an array of booleans.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrdeserialize_array (std::vector< _T > &value)
 Decodes an array of primitives on a std::vector.
 
template<class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrdeserialize_array (std::vector< _T > &value)
 Decodes an array of non-primitives on a std::vector.
 
template<class _T >
Cdrdeserialize_array (std::vector< _T > &value, Endianness endianness)
 Decodes an array of non-primitives on a std::vector with a different endianness.
 
TEMPLATE_SPEC Cdrdeserialize_array (std::vector< bool > &value)
 Decodes an array of booleans on a std::vector.
 
template<class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrdeserialize_sequence (_T *&sequence_t, size_t &num_elements)
 This function template deserializes a raw sequence of non-primitives.
 
template<class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdrdeserialize_sequence (_T *&sequence_t, size_t &num_elements)
 This function template deserializes a raw sequence of primitives.
 
template<class _T >
Cdrdeserialize_sequence (_T *&sequence_t, size_t &num_elements, Endianness endianness)
 This function template deserializes a raw sequence with a different endianness.
 
TEMPLATE_SPEC Cdrdeserialize_sequence (std::string *&sequence_t, size_t &num_elements)
 This function template deserializes a string sequence.
 
TEMPLATE_SPEC Cdrdeserialize_sequence (std::wstring *&sequence_t, size_t &num_elements)
 This function template deserializes a wide-string sequence.
 
template<class _T >
Cdrserialize_member (const MemberId &member_id, const _T &member_value, XCdrHeaderSelection header_selection=XCdrHeaderSelection::AUTO_WITH_SHORT_HEADER_BY_DEFAULT)
 XCDR extensions.
 
template<class _T >
Cdrserialize_member (const MemberId &member_id, const optional< _T > &member_value, XCdrHeaderSelection header_selection=XCdrHeaderSelection::AUTO_WITH_SHORT_HEADER_BY_DEFAULT)
 Encodes an optional member of a type according to the encoding algorithm used.
 
template<class _T >
Cdrdeserialize_member (_T &member_value)
 Decodes a member of a type according to the encoding algorithm used.
 
template<class _T >
Cdrdeserialize_member (optional< _T > &member_value)
 Decodes an optional member of a type according to the encoding algorithm used.
 
Cdr_DllAPI Cdrbegin_serialize_type (Cdr::state &current_state, EncodingAlgorithmFlag type_encoding)
 Tells to the encoder a new type and its members starts to be encoded.
 
Cdr_DllAPI Cdrend_serialize_type (Cdr::state &current_state)
 Tells to the encoder the encoding of the type finishes.
 
Cdr_DllAPI Cdrdeserialize_type (EncodingAlgorithmFlag type_encoding, std::function< bool(Cdr &, const MemberId &)> functor)
 Tells to the encoder a new type and its members starts to be decoded.
 
template<class _T >
Cdrserialize (const optional< _T > &value)
 Encodes an optional in the buffer.
 
template<class _T >
Cdrserialize (const external< _T > &value)
 Encodes an external in the buffer.
 
Cdr_DllAPI Cdroperator<< (const MemberId &member_id)
 Tells the encoder the member identifier for the next member to be encoded.
 
template<class _T >
Cdrdeserialize (optional< _T > &value)
 Decodes an optional from the buffer.
 
template<class _T >
Cdrdeserialize (external< _T > &value)
 Decodes an external from the buffer.
 
template<class _T >
Cdrdeserialize (optional< external< _T > > &value)
 Decodes an optional of an external from the buffer.
 
Cdr_DllAPI state allocate_xcdrv2_dheader ()
 Encodes an empty DHEADER if the encoding version is XCDRv2.
 
Cdr_DllAPI void set_xcdrv2_dheader (const state &state)
 Uses the state to calculate the member's type size and serialize the value in the previous allocated DHEADER.
 

Static Public Member Functions

static size_t alignment (size_t current_alignment, size_t data_size)
 Returns the number of bytes needed to align a position to certain data size.
 

Static Public Attributes

static Cdr_DllAPI const Endianness DEFAULT_ENDIAN
 Default endianess in the system.
 

Detailed Description

This class offers an interface to serialize/deserialize some basic types using CDR protocol inside an eprosima::fastcdr::FastBuffer.

Member Enumeration Documentation

◆ Endianness

enum Endianness : uint8_t

This enumeration represents endianness types.

Enumerator
BIG_ENDIANNESS 

Big endianness.

LITTLE_ENDIANNESS 

Little endianness.

◆ XCdrHeaderSelection

Used to decide, in encoding algorithms where member headers support a short header version and a long header version, which one will be used.

Enumerator
SHORT_HEADER 

Initially a short member header is allocated and cannot be changed. This option may cause an exception.

LONG_HEADER 

Initially a long member header is allocated and cannot be changed.

AUTO_WITH_SHORT_HEADER_BY_DEFAULT 

Initially a short member header is allocated but can be changed to the longer version.

AUTO_WITH_LONG_HEADER_BY_DEFAULT 

Initially a long member header is allocated but can be changed to the shorter version.

Constructor & Destructor Documentation

◆ Cdr()

Cdr_DllAPI Cdr ( FastBuffer cdr_buffer,
const Endianness  endianness = DEFAULT_ENDIAN,
const CdrVersion  cdr_version = XCDRv2 
)

This constructor creates an eprosima::fastcdr::Cdr object that can serialize/deserialize the assigned buffer.

Parameters
cdr_bufferA reference to the buffer that contains (or will contain) the CDR representation.
endiannessThe initial endianness that will be used. The default value is the endianness of the system.
cdr_versionRepresents the type of encoding algorithm that will be used for the encoding. The default value is CdrVersion::XCDRv2.

Member Function Documentation

◆ alignment()

static size_t alignment ( size_t  current_alignment,
size_t  data_size 
)
inlinestatic

Returns the number of bytes needed to align a position to certain data size.

Parameters
current_alignmentPosition to be aligned.
data_sizeSize of next data to process (should be power of two).
Returns
Number of required alignment bytes.

◆ allocate_xcdrv2_dheader()

Cdr_DllAPI state allocate_xcdrv2_dheader ( )

Encodes an empty DHEADER if the encoding version is XCDRv2.

After serializing the members's type, set_xcdrv2_dheader must be called to set the correct DHEADER value using the state returned by this function.

◆ begin_serialize_type()

Cdr_DllAPI Cdr & begin_serialize_type ( Cdr::state current_state,
EncodingAlgorithmFlag  type_encoding 
)
inline

Tells to the encoder a new type and its members starts to be encoded.

Parameters
[in,out]current_stateState of the encoder previous of calling this function.
[in]type_encodingThe encoding algorithm used to encode the type and its members.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ change_endianness()

Cdr_DllAPI void change_endianness ( Endianness  endianness)

This function sets the current endianness used by the CDR type.

Parameters
endiannessThe new endianness value.

◆ deserialize() [1/40]

template<class _T , typename std::enable_if<!std::is_enum< _T >::value >::type * = nullptr, typename = void>
Cdr & deserialize ( _T &  value)
inline

Decodes the value of a type from the buffer.

To do that, the encoder expects a function deserialize to be provided by the type.

Parameters
[out]valueReference to the variable where the value will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [2/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, int32_t >::value >::type * = nullptr>
Cdr & deserialize ( _T &  value)
inline

Decodes an enumeration from the buffer.

Parameters
[out]valueReference to the variable where the enumeration will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [3/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, uint32_t >::value >::type * = nullptr>
Cdr & deserialize ( _T &  value)
inline

Decodes an enumeration from the buffer.

Parameters
[out]valueReference to the variable where the enumeration will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [4/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, int16_t >::value >::type * = nullptr>
Cdr & deserialize ( _T &  value)
inline

Decodes an enumeration from the buffer.

Parameters
[out]valueReference to the variable where the enumeration will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [5/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, uint16_t >::value >::type * = nullptr>
Cdr & deserialize ( _T &  value)
inline

Decodes an enumeration from the buffer.

Parameters
[out]valueReference to the variable where the enumeration will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [6/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, int8_t >::value >::type * = nullptr>
Cdr & deserialize ( _T &  value)
inline

Decodes an enumeration from the buffer.

Parameters
[out]valueReference to the variable where the enumeration will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [7/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, uint8_t >::value >::type * = nullptr>
Cdr & deserialize ( _T &  value)
inline

Decodes an enumeration from the buffer.

Parameters
[out]valueReference to the variable where the enumeration will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [8/40]

template<class _T >
Cdr & deserialize ( _T &  value,
Endianness  endianness 
)
inline

Decodes the value of a type with a different endianness.

Parameters
[out]valueReference to the variable where the value will be stored after decoding from the buffer.
endiannessEndianness that will be used in the deserialization of this value.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [9/40]

Cdr_DllAPI Cdr & deserialize ( bool &  bool_t)

This function deserializes a boolean.

Parameters
bool_tThe variable that will store the boolean read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.
exception::BadParamExceptionThis exception is thrown when trying to deserialize an invalid value.

◆ deserialize() [10/40]

Cdr_DllAPI Cdr & deserialize ( char &  char_t)

This function deserializes a character.

Parameters
char_tThe variable that will store the character read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [11/40]

Cdr_DllAPI Cdr & deserialize ( char *&  string_t)

This function deserializes a string.

This function allocates memory to store the string. The user pointer will be set to point this allocated memory. The user will have to free this allocated memory using free()

Parameters
string_tThe pointer that will point to the string read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [12/40]

Cdr_DllAPI Cdr & deserialize ( double &  double_t)

This function deserializes a double.

Parameters
double_tThe variable that will store the double read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [13/40]

template<class _T >
Cdr & deserialize ( external< _T > &  value)
inline

Decodes an external from the buffer.

Parameters
[out]valueA reference to the variable where the external will be stored.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::BadParamExceptionThis exception is thrown when the external is locked.
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [14/40]

template<size_t MAX_CHARS>
Cdr & deserialize ( fixed_string< MAX_CHARS > &  value)
inline

Decodes a fixed string.

Parameters
[out]valueReference to the variable where the fixed string will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [15/40]

Cdr_DllAPI Cdr & deserialize ( float &  float_t)

This function deserializes a float.

Parameters
float_tThe variable that will store the float read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [16/40]

Cdr_DllAPI Cdr & deserialize ( int16_t &  short_t)

This function deserializes a short.

Parameters
short_tThe variable that will store the short read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [17/40]

Cdr_DllAPI Cdr & deserialize ( int32_t &  long_t)

This function deserializes a long.

Parameters
long_tThe variable that will store the long read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [18/40]

Cdr_DllAPI Cdr & deserialize ( int64_t &  longlong_t)

This function deserializes a long long.

Parameters
longlong_tThe variable that will store the long long read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [19/40]

TEMPLATE_SPEC Cdr & deserialize ( int8_t &  int8)
inline

This function deserializes an int8_t.

Parameters
int8The variable that will store the int8_t read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [20/40]

Cdr_DllAPI Cdr & deserialize ( long double &  ldouble_t)

This function deserializes a long double.

Parameters
ldouble_tThe variable that will store the long double read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.
Note
Due to internal representation differences, WIN32 and *NIX like systems are not compatible.

◆ deserialize() [21/40]

template<class _T >
Cdr & deserialize ( optional< _T > &  value)
inline

Decodes an optional from the buffer.

Parameters
[out]valueA reference to the variable where the optional will be stored.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [22/40]

template<class _T >
Cdr & deserialize ( optional< external< _T > > &  value)
inline

Decodes an optional of an external from the buffer.

Parameters
[out]valueA reference to the variable where the optional will be stored.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::BadParamExceptionThis exception is thrown when the external is locked.
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [23/40]

template<class _T , size_t _Size>
Cdr & deserialize ( std::array< _T, _Size > &  array_t)
inline

This function template deserializes an array.

Parameters
array_tThe variable that will store the array read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [24/40]

template<size_t N, typename std::enable_if<(N< 9) > ::type * = nullptr>
Cdr & deserialize ( std::bitset< N > &  value)
inline

Decodes a bitset from the buffer.

Parameters
[out]valueReference to the variable where the bitset will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize() [25/40]

template<size_t N, typename std::enable_if<(8< N &&N< 17) > ::type * = nullptr>
Cdr & deserialize ( std::bitset< N > &  value)
inline

◆ deserialize() [26/40]

template<size_t N, typename std::enable_if<(16< N &&N< 33) > ::type * = nullptr>
Cdr & deserialize ( std::bitset< N > &  value)
inline

◆ deserialize() [27/40]

template<size_t N, typename std::enable_if<(32< N &&N< 65) > ::type * = nullptr>
Cdr & deserialize ( std::bitset< N > &  value)
inline

◆ deserialize() [28/40]

template<class _K , class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & deserialize ( std::map< _K, _T > &  map_t)
inline

This function template deserializes a map of non-primitive.

Parameters
map_tThe variable that will store the map read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [29/40]

template<class _K , class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & deserialize ( std::map< _K, _T > &  map_t)
inline

This function template deserializes a map of primitive.

Parameters
map_tThe variable that will store the map read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [30/40]

TEMPLATE_SPEC Cdr & deserialize ( std::string &  string_t)
inline

This function deserializes a std::string.

Parameters
string_tThe variable that will store the string read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [31/40]

template<class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & deserialize ( std::vector< _T > &  vector_t)
inline

This function template deserializes a sequence of non-primitive.

Parameters
vector_tThe variable that will store the sequence read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [32/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & deserialize ( std::vector< _T > &  vector_t)
inline

This function template deserializes a sequence of primitive.

Parameters
vector_tThe variable that will store the sequence read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [33/40]

TEMPLATE_SPEC Cdr & deserialize ( std::vector< bool > &  vector_t)
inline

This function template deserializes a sequence.

Parameters
vector_tThe variable that will store the sequence read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [34/40]

TEMPLATE_SPEC Cdr & deserialize ( std::wstring &  string_t)
inline

This function deserializes a std::wstring.

Parameters
string_tThe variable that will store the string read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [35/40]

TEMPLATE_SPEC Cdr & deserialize ( uint16_t &  ushort_t)
inline

This function deserializes an unsigned short.

Parameters
ushort_tThe variable that will store the unsigned short read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [36/40]

TEMPLATE_SPEC Cdr & deserialize ( uint32_t &  ulong_t)
inline

This function deserializes an unsigned long.

Parameters
ulong_tThe variable that will store the unsigned long read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [37/40]

TEMPLATE_SPEC Cdr & deserialize ( uint64_t &  ulonglong_t)
inline

This function deserializes an unsigned long long.

Parameters
ulonglong_tThe variable that will store the unsigned long long read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [38/40]

TEMPLATE_SPEC Cdr & deserialize ( uint8_t &  octet_t)
inline

This function deserializes an octet.

Parameters
octet_tThe variable that will store the octet read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [39/40]

TEMPLATE_SPEC Cdr & deserialize ( wchar_t &  wchar)
inline

This function deserializes a wide-char.

Parameters
wcharThe variable that will store the wide-char read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize() [40/40]

Cdr_DllAPI Cdr & deserialize ( wchar_t *&  string_t)

This function deserializes a wide-string.

This function allocates memory to store the wide string. The user pointer will be set to point this allocated memory. The user will have to free this allocated memory using free()

Parameters
string_tThe pointer that will point to the wide string read from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [1/20]

template<class _T >
Cdr & deserialize_array ( _T *  type_t,
size_t  num_elements,
Endianness  endianness 
)
inline

This function template deserializes an array of non-basic objects with a different endianness.

Parameters
type_tThe variable that will store the array of objects read from the buffer.
num_elementsNumber of the elements in the array.
endiannessEndianness that will be used in the deserialization of this value.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [2/20]

template<class _T >
Cdr & deserialize_array ( _T *  value,
size_t  num_elements 
)
inline

Decodes an array of a type not managed by this encoder from the buffer.

To do that, the encoder expects a function deserialize to be provided by the type.

Parameters
[out]valueReference to the variable where the array will be stored after decoding from the buffer.
[in]num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize_array() [3/20]

Cdr_DllAPI Cdr & deserialize_array ( bool *  bool_t,
size_t  num_elements 
)

This function deserializes an array of booleans.

Parameters
bool_tThe variable that will store the array of booleans read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [4/20]

Cdr_DllAPI Cdr & deserialize_array ( char *  char_t,
size_t  num_elements 
)

This function deserializes an array of characters.

Parameters
char_tThe variable that will store the array of characters read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [5/20]

Cdr_DllAPI Cdr & deserialize_array ( double *  double_t,
size_t  num_elements 
)

This function deserializes an array of doubles.

Parameters
double_tThe variable that will store the array of doubles read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [6/20]

Cdr_DllAPI Cdr & deserialize_array ( float *  float_t,
size_t  num_elements 
)

This function deserializes an array of floats.

Parameters
float_tThe variable that will store the array of floats read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [7/20]

Cdr_DllAPI Cdr & deserialize_array ( int16_t *  short_t,
size_t  num_elements 
)

This function deserializes an array of shorts.

Parameters
short_tThe variable that will store the array of shorts read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [8/20]

Cdr_DllAPI Cdr & deserialize_array ( int32_t *  long_t,
size_t  num_elements 
)

This function deserializes an array of longs.

Parameters
long_tThe variable that will store the array of longs read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [9/20]

Cdr_DllAPI Cdr & deserialize_array ( int64_t *  longlong_t,
size_t  num_elements 
)

This function deserializes an array of long longs.

Parameters
longlong_tThe variable that will store the array of long longs read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [10/20]

TEMPLATE_SPEC Cdr & deserialize_array ( int8_t *  int8,
size_t  num_elements 
)
inline

This function deserializes an array of int8_t.

Parameters
int8The variable that will store the array of int8_t read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [11/20]

Cdr_DllAPI Cdr & deserialize_array ( long double *  ldouble_t,
size_t  num_elements 
)

This function deserializes an array of long doubles.

Parameters
ldouble_tThe variable that will store the array of long doubles read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.
Note
Due to internal representation differences, WIN32 and *NIX like systems are not compatible.

◆ deserialize_array() [12/20]

template<class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & deserialize_array ( std::vector< _T > &  value)
inline

Decodes an array of primitives on a std::vector.

std::vector must have allocated the number of element of the array.

Parameters
[out]valueReference to the std::vector where the array will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize_array() [13/20]

template<class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & deserialize_array ( std::vector< _T > &  value)
inline

Decodes an array of non-primitives on a std::vector.

std::vector must have allocated the number of element of the array.

Parameters
[out]valueReference to the std::vector where the array will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize_array() [14/20]

template<class _T >
Cdr & deserialize_array ( std::vector< _T > &  value,
Endianness  endianness 
)
inline

Decodes an array of non-primitives on a std::vector with a different endianness.

std::vector must have allocated the number of element of the array.

Parameters
[out]valueReference to the std::vector where the array will be stored after decoding from the buffer.
[in]endiannessEndianness that will be used in the serialization of this value.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize_array() [15/20]

TEMPLATE_SPEC Cdr & deserialize_array ( std::vector< bool > &  value)
inline

Decodes an array of booleans on a std::vector.

std::vector must have allocated the number of element of the array.

Parameters
[out]valueReference to the std::vector where the array will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ deserialize_array() [16/20]

TEMPLATE_SPEC Cdr & deserialize_array ( uint16_t *  ushort_t,
size_t  num_elements 
)
inline

This function deserializes an array of unsigned shorts.

Parameters
ushort_tThe variable that will store the array of unsigned shorts read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [17/20]

TEMPLATE_SPEC Cdr & deserialize_array ( uint32_t *  ulong_t,
size_t  num_elements 
)
inline

This function deserializes an array of unsigned longs.

Parameters
ulong_tThe variable that will store the array of unsigned longs read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [18/20]

TEMPLATE_SPEC Cdr & deserialize_array ( uint64_t *  ulonglong_t,
size_t  num_elements 
)
inline

This function deserializes an array of unsigned long longs.

Parameters
ulonglong_tThe variable that will store the array of unsigned long longs read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [19/20]

TEMPLATE_SPEC Cdr & deserialize_array ( uint8_t *  octet_t,
size_t  num_elements 
)
inline

This function deserializes an array of octets.

Parameters
octet_tThe variable that will store the array of octets read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_array() [20/20]

Cdr_DllAPI Cdr & deserialize_array ( wchar_t *  wchar,
size_t  num_elements 
)

This function deserializes an array of wide-chars.

Parameters
wcharThe variable that will store the array of wide-chars read from the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_member() [1/2]

template<class _T >
Cdr & deserialize_member ( _T &  member_value)
inline

Decodes a member of a type according to the encoding algorithm used.

Parameters
[out]member_valueA reference of the variable where the member value will be stored.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize_member() [2/2]

template<class _T >
Cdr & deserialize_member ( optional< _T > &  member_value)
inline

Decodes an optional member of a type according to the encoding algorithm used.

Parameters
[out]member_valueA reference of the variable where the optional member value will be stored.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ deserialize_sequence() [1/5]

template<class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & deserialize_sequence ( _T *&  sequence_t,
size_t &  num_elements 
)
inline

This function template deserializes a raw sequence of non-primitives.

This function allocates memory to store the sequence. The user pointer will be set to point this allocated memory. The user will have to free this allocated memory using free()

Parameters
sequence_tThe pointer that will store the sequence read from the buffer.
num_elementsThis variable return the number of elements of the sequence.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_sequence() [2/5]

template<class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & deserialize_sequence ( _T *&  sequence_t,
size_t &  num_elements 
)
inline

This function template deserializes a raw sequence of primitives.

This function allocates memory to store the sequence. The user pointer will be set to point this allocated memory. The user will have to free this allocated memory using free()

Parameters
sequence_tThe pointer that will store the sequence read from the buffer.
num_elementsThis variable return the number of elements of the sequence.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_sequence() [3/5]

template<class _T >
Cdr & deserialize_sequence ( _T *&  sequence_t,
size_t &  num_elements,
Endianness  endianness 
)
inline

This function template deserializes a raw sequence with a different endianness.

This function allocates memory to store the sequence. The user pointer will be set to point this allocated memory. The user will have to free this allocated memory using free()

Parameters
sequence_tThe pointer that will store the sequence read from the buffer.
num_elementsThis variable return the number of elements of the sequence.
endiannessEndianness that will be used in the deserialization of this value.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_sequence() [4/5]

TEMPLATE_SPEC Cdr & deserialize_sequence ( std::string *&  sequence_t,
size_t &  num_elements 
)
inline

This function template deserializes a string sequence.

This function allocates memory to store the sequence. The user pointer will be set to point this allocated memory. The user will have to free this allocated memory using free()

Parameters
sequence_tThe pointer that will store the sequence read from the buffer.
num_elementsThis variable return the number of elements of the sequence.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_sequence() [5/5]

TEMPLATE_SPEC Cdr & deserialize_sequence ( std::wstring *&  sequence_t,
size_t &  num_elements 
)
inline

This function template deserializes a wide-string sequence.

This function allocates memory to store the sequence. The user pointer will be set to point this allocated memory. The user will have to free this allocated memory using free()

Parameters
sequence_tThe pointer that will store the sequence read from the buffer.
num_elementsThis variable return the number of elements of the sequence.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.

◆ deserialize_type()

Cdr_DllAPI Cdr & deserialize_type ( EncodingAlgorithmFlag  type_encoding,
std::function< bool(Cdr &, const MemberId &)>  functor 
)
inline

Tells to the encoder a new type and its members starts to be decoded.

Parameters
[in]type_encodingThe encoding algorithm used to decode the type and its members.
[in]functorFunctor called each time a member has to be decoded.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ end_serialize_type()

Cdr_DllAPI Cdr & end_serialize_type ( Cdr::state current_state)
inline

Tells to the encoder the encoding of the type finishes.

Parameters
[in]current_stateState of the encoder previous of calling the function begin_serialize_type.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a buffer position that exceeds the internal memory size.

◆ endianness()

Cdr_DllAPI Endianness endianness ( ) const

This function returns the current endianness used by the CDR type.

Returns
The endianness.

◆ get_buffer_pointer()

Cdr_DllAPI char * get_buffer_pointer ( )

This function returns the pointer to the current used buffer.

Returns
Pointer to the starting position of the buffer.

◆ get_cdr_version()

Cdr_DllAPI CdrVersion get_cdr_version ( ) const

Retrieves the CdrVersion used by the instance.

Returns
Configured CdrVersion.

◆ get_current_position()

Cdr_DllAPI char * get_current_position ( )

This function returns the current position in the CDR stream.

Returns
Pointer to the current position in the buffer.

◆ get_dds_cdr_options()

Cdr_DllAPI std::array< uint8_t, 2 > get_dds_cdr_options ( ) const

This function returns the option flags when the CDR type is eprosima::fastcdr::DDS_CDR.

Returns
The option flags.

◆ get_encoding_flag()

Cdr_DllAPI EncodingAlgorithmFlag get_encoding_flag ( ) const

Returns the EncodingAlgorithmFlag set in the encapsulation when the CDR type is CdrVersion::DDS_CDR, CdrVersion::XCDRv1 or CdrVersion::XCDRv2.

Returns
The specified flag in the encapsulation.

◆ get_serialized_data_length()

Cdr_DllAPI size_t get_serialized_data_length ( ) const

This function returns the length of the serialized data inside the stream.

Returns
The length of the serialized data.

◆ get_state()

Cdr_DllAPI state get_state ( ) const

Returns the current state of the CDR serialization process.

Returns
The current state of the CDR serialization process.

◆ jump()

Cdr_DllAPI bool jump ( size_t  num_bytes)

This function skips a number of bytes in the CDR stream buffer.

Parameters
num_bytesThe number of bytes that will be jumped.
Returns
True is returned when it works successfully. Otherwise, false is returned.

◆ move_alignment_forward()

Cdr_DllAPI bool move_alignment_forward ( size_t  num_bytes)

This function moves the alignment forward.

Parameters
num_bytesThe number of bytes the alignment should advance.
Returns
True If alignment was moved successfully.

◆ operator<<() [1/2]

template<class _T >
Cdr & operator<< ( const _T &  value)
inline

Encodes the value into the buffer.

If previously a MemberId was set using operator<<, this operator will encode the value as a member of a type consistent with the set member identifier and according to the encoding algorithm used.

In other case, the operator will simply encode the value.

Parameters
[in]valueA reference to the value which will be encoded in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ operator<<() [2/2]

Cdr_DllAPI Cdr & operator<< ( const MemberId member_id)
inline

Tells the encoder the member identifier for the next member to be encoded.

Parameters
[in]member_idMember identifier.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::BadParamExceptionThis exception is thrown when a member id is already set without being encoded.

◆ operator>>()

template<class _T >
Cdr & operator>> ( _T &  value)
inline

Decodes the value from the buffer.

If this operator is called while decoding members of a type, this operator will decode the value as a member according to the encoding algorithm used.

In other case, the operator will simply decode the value.

Parameters
[out]valueReference to the variable where the value will be stored after decoding from the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to decode from a position that exceeds the internal memory size.

◆ read_encapsulation()

Cdr_DllAPI Cdr & read_encapsulation ( )

This function reads the encapsulation of the CDR stream.

If the CDR stream contains an encapsulation, then this function should be called before starting to deserialize. CdrVersion and EncodingAlgorithmFlag internal values will be changed to the ones specified by the encapsulation.

Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to deserialize a position that exceeds the internal memory size.
exception::BadParamExceptionThis exception is thrown when trying to deserialize an invalid value.

◆ reset()

Cdr_DllAPI void reset ( )

This function resets the current position in the buffer to the beginning.

◆ reset_alignment()

void reset_alignment ( )
inline

This function resets the alignment to the current position in the buffer.

◆ serialize() [1/40]

Cdr_DllAPI Cdr & serialize ( char *  string_t)
inline

This function serializes a string.

Parameters
string_tThe pointer to the string that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [2/40]

template<class _T , typename std::enable_if<!std::is_enum< _T >::value >::type * = nullptr, typename = void>
Cdr & serialize ( const _T &  value)
inline

Encodes the value of a type into the buffer.

To do that, the encoder expects a function serialize to be provided by the type.

Parameters
[in]valueA reference to the value which will be encoded in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize() [3/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, int32_t >::value >::type * = nullptr>
Cdr & serialize ( const _T &  value)
inline

Encodes the value of a enumerator into the buffer.

Parameters
[in]valueA reference to the value which will be encoded in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize() [4/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, uint32_t >::value >::type * = nullptr>
Cdr & serialize ( const _T &  value)
inline

Encodes the value of a enumerator into the buffer.

Parameters
[in]valueA reference to the value which will be encoded in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize() [5/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, int16_t >::value >::type * = nullptr>
Cdr & serialize ( const _T &  value)
inline

Encodes the value of a enumerator into the buffer.

Parameters
[in]valueA reference to the value which will be encoded in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize() [6/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, uint16_t >::value >::type * = nullptr>
Cdr & serialize ( const _T &  value)
inline

Encodes the value of a enumerator into the buffer.

Parameters
[in]valueA reference to the value which will be encoded in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize() [7/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, int8_t >::value >::type * = nullptr>
Cdr & serialize ( const _T &  value)
inline

Encodes the value of a enumerator into the buffer.

Parameters
[in]valueA reference to the value which will be encoded in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize() [8/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename std::underlying_type< _T >::type, uint8_t >::value >::type * = nullptr>
Cdr & serialize ( const _T &  value)
inline

Encodes the value of a enumerator into the buffer.

Parameters
[in]valueA reference to the value which will be encoded in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize() [9/40]

template<class _T >
Cdr & serialize ( const _T &  value,
Endianness  endianness 
)
inline

Encodes the value of a type with a different endianness.

Parameters
[in]valueA reference to the value which will be encoded in the buffer.
endiannessEndianness that will be used in the serialization of this value.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize() [10/40]

Cdr_DllAPI Cdr & serialize ( const bool  bool_t)

This function serializes a boolean.

Parameters
bool_tThe value of the boolean that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [11/40]

Cdr_DllAPI Cdr & serialize ( const char *  string_t)

This function serializes a string.

Parameters
string_tThe pointer to the string that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [12/40]

Cdr_DllAPI Cdr & serialize ( const char  char_t)

This function serializes a character.

Parameters
char_tThe value of the character that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [13/40]

Cdr_DllAPI Cdr & serialize ( const double  double_t)

This function serializes a double.

Parameters
double_tThe value of the double that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [14/40]

template<class _T >
Cdr & serialize ( const external< _T > &  value)
inline

Encodes an external in the buffer.

Parameters
[in]valueA reference to the external which will be encoded in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::BadParamExceptionThis exception is thrown when external is null.
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize() [15/40]

template<size_t MAX_CHARS>
Cdr & serialize ( const fixed_string< MAX_CHARS > &  value)
inline

Encodes a eprosima::fastcdr::fixed_string in the buffer.

Parameters
[in]valueA reference to the fixed string which will be encoded in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize() [16/40]

Cdr_DllAPI Cdr & serialize ( const float  float_t)

This function serializes a float.

Parameters
float_tThe value of the float that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [17/40]

Cdr_DllAPI Cdr & serialize ( const int16_t  short_t)

This function serializes a short.

Parameters
short_tThe value of the short that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [18/40]

Cdr_DllAPI Cdr & serialize ( const int32_t  long_t)

This function serializes a long.

Parameters
long_tThe value of the long that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [19/40]

Cdr_DllAPI Cdr & serialize ( const int64_t  longlong_t)

This function serializes a long long.

Parameters
longlong_tThe value of the long long that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [20/40]

Cdr_DllAPI Cdr & serialize ( const int8_t  int8)
inline

This function serializes an int8_t.

Parameters
int8The value of the int8_t that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [21/40]

Cdr_DllAPI Cdr & serialize ( const long double  ldouble_t)

This function serializes a long double.

Parameters
ldouble_tThe value of the long double that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.
Note
Due to internal representation differences, WIN32 and *NIX like systems are not compatible.

◆ serialize() [22/40]

template<class _T >
Cdr & serialize ( const optional< _T > &  value)
inline

Encodes an optional in the buffer.

Parameters
[in]valueA reference to the optional which will be encoded in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize() [23/40]

template<class _T , size_t _Size>
Cdr & serialize ( const std::array< _T, _Size > &  array_t)
inline

This function template serializes an array.

Parameters
array_tThe array that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [24/40]

template<size_t N, typename std::enable_if<(N< 9) > ::type * = nullptr>
Cdr & serialize ( const std::bitset< N > &  value)
inline

Encodes the value of a bitset into the buffer.

Parameters
[in]valueA reference to the value which will be encoded in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize() [25/40]

template<size_t N, typename std::enable_if<(8< N &&N< 17) > ::type * = nullptr>
Cdr & serialize ( const std::bitset< N > &  value)
inline

◆ serialize() [26/40]

template<size_t N, typename std::enable_if<(16< N &&N< 33) > ::type * = nullptr>
Cdr & serialize ( const std::bitset< N > &  value)
inline

◆ serialize() [27/40]

template<size_t N, typename std::enable_if<(32< N &&N< 65) > ::type * = nullptr>
Cdr & serialize ( const std::bitset< N > &  value)
inline

◆ serialize() [28/40]

template<class _K , class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & serialize ( const std::map< _K, _T > &  map_t)
inline

This function template serializes a map of non-primitive.

Parameters
map_tThe map that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [29/40]

template<class _K , class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & serialize ( const std::map< _K, _T > &  map_t)
inline

This function template serializes a map of primitive.

Parameters
map_tThe map that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [30/40]

TEMPLATE_SPEC Cdr & serialize ( const std::string &  string_t)
inline

This function serializes a std::string.

Parameters
string_tThe string that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [31/40]

template<class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & serialize ( const std::vector< _T > &  vector_t)
inline

This function template serializes a sequence of non-primitive.

Parameters
vector_tThe sequence that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [32/40]

template<class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & serialize ( const std::vector< _T > &  vector_t)
inline

This function template serializes a sequence of primitive.

Parameters
vector_tThe sequence that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [33/40]

TEMPLATE_SPEC Cdr & serialize ( const std::vector< bool > &  vector_t)
inline

This function template serializes a sequence of booleans.

Parameters
vector_tThe sequence that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [34/40]

TEMPLATE_SPEC Cdr & serialize ( const std::wstring &  string_t)
inline

This function serializes a std::wstring.

Parameters
string_tThe wstring that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [35/40]

Cdr_DllAPI Cdr & serialize ( const uint16_t  ushort_t)
inline

This function serializes an unsigned short.

Parameters
ushort_tThe value of the unsigned short that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [36/40]

Cdr_DllAPI Cdr & serialize ( const uint32_t  ulong_t)
inline

This function serializes an unsigned long.

Parameters
ulong_tThe value of the unsigned long that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [37/40]

Cdr_DllAPI Cdr & serialize ( const uint64_t  ulonglong_t)
inline

This function serializes an unsigned long long.

Parameters
ulonglong_tThe value of the unsigned long long that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [38/40]

Cdr_DllAPI Cdr & serialize ( const uint8_t &  octet_t)
inline

This function serializes an octet.

Parameters
octet_tThe value of the octet that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [39/40]

Cdr_DllAPI Cdr & serialize ( const wchar_t *  string_t)

This function serializes a wstring.

Parameters
string_tThe pointer to the wstring that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize() [40/40]

Cdr_DllAPI Cdr & serialize ( const wchar_t  wchar)
inline

This function serializes a wide-char.

Parameters
wcharThe value of the wide-char that will be serialized in the buffer.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [1/23]

template<class _T >
Cdr & serialize_array ( const _T *  type_t,
size_t  num_elements,
Endianness  endianness 
)
inline

This function template serializes an array of non-basic objects with a different endianness.

Parameters
type_tThe array of objects that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
endiannessEndianness that will be used in the serialization of this value.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [2/23]

template<class _T >
Cdr & serialize_array ( const _T *  value,
size_t  num_elements 
)
inline

Encodes an array of a type not managed by this encoder into the buffer.

To do that, the encoder expects a function serialize to be provided by the type.

Parameters
[in]valueArray which will be encoded in the buffer.
[in]num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize_array() [3/23]

Cdr_DllAPI Cdr & serialize_array ( const bool *  bool_t,
size_t  num_elements 
)

This function serializes an array of booleans.

Parameters
bool_tThe array of booleans that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [4/23]

Cdr_DllAPI Cdr & serialize_array ( const char *  char_t,
size_t  num_elements 
)

This function serializes an array of characters.

Parameters
char_tThe array of characters that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [5/23]

Cdr_DllAPI Cdr & serialize_array ( const double *  double_t,
size_t  num_elements 
)

This function serializes an array of doubles.

Parameters
double_tThe array of doubles that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [6/23]

template<size_t MAX_CHARS>
Cdr & serialize_array ( const fixed_string< MAX_CHARS > *  value,
size_t  num_elements 
)
inline

Encodes an array of fixed strings.

Parameters
[in]valueArray of fixed strings which will be encoded in the buffer.
[in]num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize_array() [7/23]

Cdr_DllAPI Cdr & serialize_array ( const float *  float_t,
size_t  num_elements 
)

This function serializes an array of floats.

Parameters
float_tThe array of floats that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [8/23]

Cdr_DllAPI Cdr & serialize_array ( const int16_t *  short_t,
size_t  num_elements 
)

This function serializes an array of shorts.

Parameters
short_tThe array of shorts that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [9/23]

Cdr_DllAPI Cdr & serialize_array ( const int32_t *  long_t,
size_t  num_elements 
)

This function serializes an array of longs.

Parameters
long_tThe array of longs that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [10/23]

Cdr_DllAPI Cdr & serialize_array ( const int64_t *  longlong_t,
size_t  num_elements 
)

This function serializes an array of long longs.

Parameters
longlong_tThe array of long longs that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [11/23]

TEMPLATE_SPEC Cdr & serialize_array ( const int8_t *  int8,
size_t  num_elements 
)
inline

This function serializes an array of int8_t.

Parameters
int8The sequence of int8_t that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [12/23]

Cdr_DllAPI Cdr & serialize_array ( const long double *  ldouble_t,
size_t  num_elements 
)

This function serializes an array of long doubles.

Parameters
ldouble_tThe array of long doubles that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.
Note
Due to internal representation differences, WIN32 and *NIX like systems are not compatible.

◆ serialize_array() [13/23]

TEMPLATE_SPEC Cdr & serialize_array ( const std::string *  string_t,
size_t  num_elements 
)
inline

This function serializes an array of strings.

Parameters
string_tThe array of strings that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [14/23]

template<class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & serialize_array ( const std::vector< _T > &  value)
inline

Encodes an std::vector of primitives as an array.

Parameters
[in]valueReference to a std::vector.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize_array() [15/23]

template<class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & serialize_array ( const std::vector< _T > &  value)
inline

Encodes an std::vector of non-primitives as an array.

Parameters
[in]valueReference to a std::vector.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize_array() [16/23]

template<class _T >
Cdr & serialize_array ( const std::vector< _T > &  value,
Endianness  endianness 
)
inline

Encodes an std::vector as an array with a different endianness.

Parameters
[in]valueReference to a std::vector.
[in]endiannessEndianness that will be used in the serialization of this value.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize_array() [17/23]

TEMPLATE_SPEC Cdr & serialize_array ( const std::vector< bool > &  value)
inline

Encodes an std::vector of booleans as an array.

Parameters
[in]valueReference to a std::vector.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize_array() [18/23]

TEMPLATE_SPEC Cdr & serialize_array ( const std::wstring *  string_t,
size_t  num_elements 
)
inline

This function serializes an array of wide-strings.

Parameters
string_tThe array of wide-strings that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [19/23]

TEMPLATE_SPEC Cdr & serialize_array ( const uint16_t *  ushort_t,
size_t  num_elements 
)
inline

This function serializes an array of unsigned shorts.

Parameters
ushort_tThe array of unsigned shorts that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [20/23]

TEMPLATE_SPEC Cdr & serialize_array ( const uint32_t *  ulong_t,
size_t  num_elements 
)
inline

This function serializes an array of unsigned longs.

Parameters
ulong_tThe array of unsigned longs that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [21/23]

TEMPLATE_SPEC Cdr & serialize_array ( const uint64_t *  ulonglong_t,
size_t  num_elements 
)
inline

This function serializes an array of unsigned long longs.

Parameters
ulonglong_tThe array of unsigned long longs that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [22/23]

TEMPLATE_SPEC Cdr & serialize_array ( const uint8_t *  octet_t,
size_t  num_elements 
)
inline

This function serializes an array of octets.

Parameters
octet_tThe sequence of octets that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_array() [23/23]

Cdr_DllAPI Cdr & serialize_array ( const wchar_t *  wchar,
size_t  num_elements 
)

This function serializes an array of wide-chars.

Parameters
wcharThe array of wide-chars that will be serialized in the buffer.
num_elementsNumber of the elements in the array.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_encapsulation()

Cdr_DllAPI Cdr & serialize_encapsulation ( )

This function writes the encapsulation of the CDR stream.

If the CDR stream should contain an encapsulation, then this function should be called before starting to serialize.

Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_member() [1/2]

template<class _T >
Cdr & serialize_member ( const MemberId member_id,
const _T &  member_value,
XCdrHeaderSelection  header_selection = XCdrHeaderSelection::AUTO_WITH_SHORT_HEADER_BY_DEFAULT 
)
inline

XCDR extensions.

Encodes a member of a type according to the encoding algorithm used.

Parameters
[in]member_idMember identifier.
[in]member_valueMember value.
[in]header_selectionSelects which member header will be used to allocate space. Default: XCdrHeaderSelection::AUTO_WITH_SHORT_HEADER_BY_DEFAULT.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize_member() [2/2]

template<class _T >
Cdr & serialize_member ( const MemberId member_id,
const optional< _T > &  member_value,
XCdrHeaderSelection  header_selection = XCdrHeaderSelection::AUTO_WITH_SHORT_HEADER_BY_DEFAULT 
)
inline

Encodes an optional member of a type according to the encoding algorithm used.

Parameters
[in]member_idMember identifier.
[in]member_valueOptional member value.
[in]header_selectionSelects which member header will be used to allocate space. Default: XCdrHeaderSelection::AUTO_WITH_SHORT_HEADER_BY_DEFAULT.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to encode into a buffer position that exceeds the internal memory size.

◆ serialize_sequence() [1/3]

template<class _T , typename std::enable_if<!std::is_enum< _T >::value &&!std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & serialize_sequence ( const _T *  sequence_t,
size_t  num_elements 
)
inline

This function template serializes a raw sequence of non-primitives.

Parameters
sequence_tPointer to the sequence that will be serialized in the buffer.
num_elementsThe number of elements contained in the sequence.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_sequence() [2/3]

template<class _T , typename std::enable_if< std::is_enum< _T >::value||std::is_arithmetic< _T >::value >::type * = nullptr>
Cdr & serialize_sequence ( const _T *  sequence_t,
size_t  num_elements 
)
inline

This function template serializes a raw sequence of primitives.

Parameters
sequence_tPointer to the sequence that will be serialized in the buffer.
num_elementsThe number of elements contained in the sequence.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ serialize_sequence() [3/3]

template<class _T >
Cdr & serialize_sequence ( const _T *  sequence_t,
size_t  num_elements,
Endianness  endianness 
)
inline

This function template serializes a raw sequence with a different endianness.

Parameters
sequence_tPointer to the sequence that will be serialized in the buffer.
num_elementsThe number of elements contained in the sequence.
endiannessEndianness that will be used in the serialization of this value.
Returns
Reference to the eprosima::fastcdr::Cdr object.
Exceptions
exception::NotEnoughMemoryExceptionThis exception is thrown when trying to serialize a position that exceeds the internal memory size.

◆ set_dds_cdr_options()

Cdr_DllAPI void set_dds_cdr_options ( const std::array< uint8_t, 2 > &  options)

This function sets the option flags when the CDR type is eprosima::fastcdr::DDS_CDR.

Parameters
optionsNew value for the option flags.

◆ set_encoding_flag()

Cdr_DllAPI bool set_encoding_flag ( EncodingAlgorithmFlag  encoding_flag)

Sets the EncodingAlgorithmFlag for the encapsulation when the CDR type is CdrVersion::DDS_CDR, CdrVersion::XCDRv1 or CdrVersion::XCDRv2.

This function only works when is called before starting the encoding/decoding.

Parameters
[in]encoding_flagValue to be used in the encapsulation.
Returns
Indicates whether the setting was successful.

◆ set_state()

Cdr_DllAPI void set_state ( const state state)

Sets a previous state of the CDR serialization process;.

Parameters
statePrevious state that will be set.

◆ set_xcdrv2_dheader()

Cdr_DllAPI void set_xcdrv2_dheader ( const state state)

Uses the state to calculate the member's type size and serialize the value in the previous allocated DHEADER.

Parameters
[in]statestate used to calculate the member's type size.

Member Data Documentation

◆ DEFAULT_ENDIAN

Cdr_DllAPI const Endianness DEFAULT_ENDIAN
static

Default endianess in the system.


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