| Fast DDS Version 3.3.0 Fast DDS

Loading...
Searching...
No Matches
TopicDataType Class Referenceabstract
eProsima Fast DDS API Reference » DDS Public API

Class TopicDataType used to provide the DomainRTPSParticipant with the methods to serialize, deserialize and get the key of a specific data type. More...

`#include <TopicDataType.hpp>`

Inheritance diagram for TopicDataType:
[legend]

## Public Member Functions

FASTDDS_EXPORTED_API | TopicDataType ()=default
| Constructor.
virtual FASTDDS_EXPORTED_API | ~TopicDataType ()=default
| Destructor.
virtual FASTDDS_EXPORTED_API bool | serialize (const void *const data, rtps::SerializedPayload_t &payload, eprosima::fastdds::dds::DataRepresentationId_t data_representation)=0
| Serialize method, it should be implemented by the user, since it is abstract.
virtual FASTDDS_EXPORTED_API bool | deserialize (rtps::SerializedPayload_t &payload, void *data)=0
| Deserialize method, it should be implemented by the user, since it is abstract.
virtual FASTDDS_EXPORTED_API uint32_t | calculate_serialized_size (const void *const data, eprosima::fastdds::dds::DataRepresentationId_t data_representation)=0
| Calculates the serialized size of the provided data.
virtual FASTDDS_EXPORTED_API void * | create_data ()=0
| Create a Data Type.
virtual FASTDDS_EXPORTED_API void | delete_data (void *data)=0
| Remove a previously created object.
virtual FASTDDS_EXPORTED_API bool | compute_key (rtps::SerializedPayload_t &payload, rtps::InstanceHandle_t &ihandle, bool force_md5=false)=0
| Get the key associated with the data.
virtual FASTDDS_EXPORTED_API bool | compute_key (const void *const data, rtps::InstanceHandle_t &ihandle, bool force_md5=false)=0
| Get the key associated with the data.
FASTDDS_EXPORTED_API void | set_name (const std::string &nam)
| Set topic data type name.
FASTDDS_EXPORTED_API void | set_name (std::string &&nam)
| Set topic data type name.
FASTDDS_EXPORTED_API const std::string & | get_name () const
| Get topic data type name.
FASTDDS_EXPORTED_API const xtypes::TypeIdentifierPair & | type_identifiers () const
| Get the type identifiers.
virtual FASTDDS_EXPORTED_API bool | is_bounded () const
| Checks if the type is bounded.
virtual FASTDDS_EXPORTED_API bool | is_plain (DataRepresentationId_t) const
| Checks if the type is plain when using a specific encoding.
virtual FASTDDS_EXPORTED_API bool | construct_sample (void *memory) const
| Construct a sample on a memory location.
virtual FASTDDS_EXPORTED_API void | register_type_object_representation ()
| Register TypeObject type representation.

## Public Attributes

uint32_t | max_serialized_type_size {0}
| Maximum serialized size of the type in bytes.
bool | is_compute_key_provided {false}
| Indicates whether the method to obtain the key has been implemented.

## Protected Attributes

xtypes::TypeIdentifierPair | type_identifiers_

## Detailed Description

Class TopicDataType used to provide the DomainRTPSParticipant with the methods to serialize, deserialize and get the key of a specific data type.

The user should created a class that inherits from this one, where Serialize and deserialize methods MUST be implemented.

## Constructor & Destructor Documentation

## ◆ TopicDataType()

FASTDDS_EXPORTED_API TopicDataType | ( |  | ) |

default

Constructor.

## ◆ ~TopicDataType()

virtual FASTDDS_EXPORTED_API ~TopicDataType | ( |  | ) |

virtual default

Destructor.

## Member Function Documentation

## ◆ calculate_serialized_size()

virtual FASTDDS_EXPORTED_API uint32_t calculate_serialized_size | ( | const void *const | data,
|  | eprosima::fastdds::dds::DataRepresentationId_t | data_representation )

pure virtual

Calculates the serialized size of the provided data.

Parameters

  [in] | data | Pointer to data.
  [in] | data_representation | Representation that should be used for calculating the serialized size.

Returns
  Serialized size of the data.

Implemented in DynamicPubSubType.

## ◆ compute_key() [1/2]

virtual FASTDDS_EXPORTED_API bool compute_key | ( | const void *const | data,
|  | rtps::InstanceHandle_t & | ihandle,
|  | bool | force_md5 = false )

pure virtual

Get the key associated with the data.

Parameters

  [in] | data | Pointer to the data.
  [out] | ihandle | Pointer to the Handle.
  [in] | force_md5 | Force MD5 checking.

Returns
  True if correct.

Implemented in DynamicPubSubType.

## ◆ compute_key() [2/2]

virtual FASTDDS_EXPORTED_API bool compute_key | ( | rtps::SerializedPayload_t & | payload,
|  | rtps::InstanceHandle_t & | ihandle,
|  | bool | force_md5 = false )

pure virtual

Get the key associated with the data.

Parameters

  [in] | payload | Pointer to the payload containing the data.
  [out] | ihandle | Pointer to the Handle.
  [in] | force_md5 | Force MD5 checking.

Returns
  True if correct.

Implemented in DynamicPubSubType.

## ◆ construct_sample()

virtual FASTDDS_EXPORTED_API bool construct_sample | ( | void * | memory | ) | const

inline virtual

Construct a sample on a memory location.

Parameters

  memory | Pointer to the memory location where the sample should be constructed.

Returns
  whether this type supports in-place construction or not.

## ◆ create_data()

virtual FASTDDS_EXPORTED_API void * create_data | ( |  | ) |

pure virtual

Create a Data Type.

Returns
  Void pointer to the created object.

Implemented in DynamicPubSubType.

## ◆ delete_data()

virtual FASTDDS_EXPORTED_API void delete_data | ( | void * | data | ) |

pure virtual

Remove a previously created object.

Parameters

  data | Pointer to the created Data.

Implemented in DynamicPubSubType.

## ◆ deserialize()

virtual FASTDDS_EXPORTED_API bool deserialize | ( | rtps::SerializedPayload_t & | payload,
|  | void * | data )

pure virtual

Deserialize method, it should be implemented by the user, since it is abstract.

Parameters

  [in] | payload | Pointer to the payload
  [out] | data | Pointer to the data

Returns
  True if correct.

Implemented in DynamicPubSubType.

## ◆ get_name()

FASTDDS_EXPORTED_API const std::string & get_name | ( |  | ) | const

inline

Get topic data type name.

Returns
  Topic data type name

## ◆ is_bounded()

virtual FASTDDS_EXPORTED_API bool is_bounded | ( |  | ) | const

inline virtual

Checks if the type is bounded.

## ◆ is_plain()

virtual FASTDDS_EXPORTED_API bool is_plain | ( | DataRepresentationId_t |  | ) | const

inline virtual

Checks if the type is plain when using a specific encoding.

## ◆ register_type_object_representation()

virtual FASTDDS_EXPORTED_API void register_type_object_representation | ( |  | ) |

inline virtual

Register TypeObject type representation.

Reimplemented in DynamicPubSubType.

## ◆ serialize()

virtual FASTDDS_EXPORTED_API bool serialize | ( | const void *const | data,
|  | rtps::SerializedPayload_t & | payload,
|  | eprosima::fastdds::dds::DataRepresentationId_t | data_representation )

pure virtual

Serialize method, it should be implemented by the user, since it is abstract.

If not implemented, this method will call the serialize method in which the topic data representation is not considered. It is VERY IMPORTANT that the user sets the SerializedPayload length correctly.

Parameters

  [in] | data | Pointer to the data
  [out] | payload | Pointer to the payload
  [in] | data_representation | Representation that should be used to encode the data into the payload.

Returns
  True if correct.

Implemented in DynamicPubSubType.

## ◆ set_name() [1/2]

FASTDDS_EXPORTED_API void set_name | ( | const std::string & | nam | ) |

inline

Set topic data type name.

Parameters

  nam | Topic data type name

## ◆ set_name() [2/2]

FASTDDS_EXPORTED_API void set_name | ( | std::string && | nam | ) |

inline

Set topic data type name.

Parameters

  nam | Topic data type name

## ◆ type_identifiers()

FASTDDS_EXPORTED_API const xtypes::TypeIdentifierPair & type_identifiers | ( |  | ) | const

inline

Get the type identifiers.

Returns
  TypeIdentifierPair

## Member Data Documentation

## ◆ is_compute_key_provided

bool is_compute_key_provided {false}

Indicates whether the method to obtain the key has been implemented.

## ◆ max_serialized_type_size

uint32_t max_serialized_type_size {0}

Maximum serialized size of the type in bytes.

If the type has unbounded fields, and therefore cannot have a maximum size, use 0.

## ◆ type_identifiers_

xtypes::TypeIdentifierPair type_identifiers_

protected

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

- include/fastdds/dds/topic/TopicDataType.hpp