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>

Classes | |
| struct | Context |
| An interface to provide the user with a context when serializing and deserializing data. More... | |
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 | serialize_ctx (const std::shared_ptr< Context > &context, const void *const data, rtps::SerializedPayload_t &payload, eprosima::fastdds::dds::DataRepresentationId_t data_representation) |
| Serialize method with context, it can be reimplemented by the user to perform custom serialization depending on the context received. | |
| 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 bool | deserialize_ctx (const std::shared_ptr< Context > &context, rtps::SerializedPayload_t &payload, void *data) |
| Deserialize method with context, it can be reimplemented by the user to perform custom deserialization depending on the context received. | |
| 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 uint32_t | calculate_serialized_size_ctx (const std::shared_ptr< Context > &context, const void *const data, eprosima::fastdds::dds::DataRepresentationId_t data_representation) |
| Calculates the serialized size of the provided data with context. | |
| virtual FASTDDS_EXPORTED_API void * | create_data ()=0 |
| Create a Data Type. | |
| virtual FASTDDS_EXPORTED_API void * | create_data_ctx (const std::shared_ptr< Context > &context) |
| Create a Data Type with context. | |
| virtual FASTDDS_EXPORTED_API void | delete_data (void *data)=0 |
| Remove a previously created object. | |
| virtual FASTDDS_EXPORTED_API void | delete_data_ctx (const std::shared_ptr< Context > &context, void *data) |
| Remove a previously created object with context. | |
| 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_ctx (const std::shared_ptr< Context > &context, rtps::SerializedPayload_t &payload, rtps::InstanceHandle_t &ihandle, bool force_md5=false) |
| Get the key associated with the data with context. | |
| 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. | |
| virtual FASTDDS_EXPORTED_API bool | compute_key_ctx (const std::shared_ptr< Context > &context, const void *const data, rtps::InstanceHandle_t &ihandle, bool force_md5=false) |
| Get the key associated with the data with context. | |
| 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_bounded_ctx (const std::shared_ptr< Context > &context) const |
| Checks if the type is bounded with context. | |
| 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 | is_plain_ctx (const std::shared_ptr< Context > &context, DataRepresentationId_t representation) const |
| Checks if the type is plain when using a specific encoding and a context It can be reimplemented by the user to perform custom checks depending on the context received. | |
| virtual FASTDDS_EXPORTED_API bool | construct_sample (void *memory) const |
| Construct a sample on a memory location. | |
| virtual FASTDDS_EXPORTED_API bool | construct_sample_ctx (const std::shared_ptr< Context > &context, void *memory) const |
| Construct a sample on a memory location using a context. | |
| virtual FASTDDS_EXPORTED_API void | register_type_object_representation () |
| Register TypeObject type representation. | |
| virtual FASTDDS_EXPORTED_API void | register_type_object_representation_ctx (const std::shared_ptr< Context > &context) |
| Register TypeObject type representation It can be reimplemented by the user to perform custom registration depending on the context received. | |
| virtual FASTDDS_EXPORTED_API uint32_t | get_max_serialized_size_ctx (const std::shared_ptr< Context > &context) |
| Get the maximum serialized size of the type using a context It can be reimplemented by the user to perform custom calculations depending on the context received. | |
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_ |
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.
|
default |
Constructor.
|
virtualdefault |
Destructor.
|
pure virtual |
Calculates the serialized size of the provided data.
| [in] | data | Pointer to data. |
| [in] | data_representation | Representation that should be used for calculating the serialized size. |
Implemented in DynamicPubSubType.
|
inlinevirtual |
Calculates the serialized size of the provided data with context.
It can be reimplemented by the user to perform custom calculations depending on the context received. The default implementation falls back to using the callback without context.
| [in] | context | Context that can be used during computation. |
| [in] | data | Pointer to data. |
| [in] | data_representation | Representation that should be used for calculating the serialized size. |
|
pure virtual |
Get the key associated with the data.
| [in] | data | Pointer to the data. |
| [out] | ihandle | Pointer to the Handle. |
| [in] | force_md5 | Force MD5 checking. |
Implemented in DynamicPubSubType.
|
pure virtual |
Get the key associated with the data.
| [in] | payload | Pointer to the payload containing the data. |
| [out] | ihandle | Pointer to the Handle. |
| [in] | force_md5 | Force MD5 checking. |
Implemented in DynamicPubSubType.
|
inlinevirtual |
Get the key associated with the data with context.
It can be reimplemented by the user to perform custom key computation depending on the context received. The default implementation falls back to using the callback without context.
| [in] | context | Context that can be used during computation. |
| [in] | data | Pointer to the data. |
| [out] | ihandle | Pointer to the Handle. |
| [in] | force_md5 | Force MD5 checking. |
|
inlinevirtual |
Get the key associated with the data with context.
It can be reimplemented by the user to perform custom key computation depending on the context received. The default implementation falls back to using the callback without context.
| [in] | context | Context that can be used during computation. |
| [in] | payload | Pointer to the payload containing the data. |
| [out] | ihandle | Pointer to the Handle. |
| [in] | force_md5 | Force MD5 checking. |
|
inlinevirtual |
Construct a sample on a memory location.
| memory | Pointer to the memory location where the sample should be constructed. |
|
inlinevirtual |
Construct a sample on a memory location using a context.
It can be reimplemented by the user to perform custom construction depending on the context received. The default implementation falls back to using the callback without context.
| [in] | context | Context that can be used during construction. |
| memory | Pointer to the memory location where the sample should be constructed. |
|
pure virtual |
|
inlinevirtual |
Create a Data Type with context.
It can be reimplemented by the user to perform custom creation depending on the context received. The default implementation falls back to using the callback without context.
| context | Context that can be used during creation. |
|
pure virtual |
Remove a previously created object.
| data | Pointer to the created Data. |
Implemented in DynamicPubSubType.
|
inlinevirtual |
Remove a previously created object with context.
It can be reimplemented by the user to perform custom deletion depending on the context received The default implementation falls back to using the callback without context.
| context | Context that can be used during deletion. |
| data | Pointer to the created Data. |
|
pure virtual |
Deserialize method, it should be implemented by the user, since it is abstract.
| [in] | payload | Pointer to the payload |
| [out] | data | Pointer to the data |
Implemented in DynamicPubSubType.
|
inlinevirtual |
Deserialize method with context, it can be reimplemented by the user to perform custom deserialization depending on the context received.
The default implementation falls back to using the callback without context.
| [in] | context | Context that can be used during deserialization. |
| [in] | payload | Pointer to the payload |
| [out] | data | Pointer to the data |
|
inlinevirtual |
Get the maximum serialized size of the type using a context It can be reimplemented by the user to perform custom calculations depending on the context received.
The default implementation just returns the maximum serialized size without using the context.
| [in] | context | Context that can be used during computation. |
|
inline |
Get topic data type name.
|
inlinevirtual |
Checks if the type is bounded.
|
inlinevirtual |
Checks if the type is bounded with context.
It can be reimplemented by the user to perform custom checks depending on the context received. The default implementation falls back to using the callback without context.
| [in] | context | Context that can be used during check. |
|
inlinevirtual |
Checks if the type is plain when using a specific encoding.
|
inlinevirtual |
Checks if the type is plain when using a specific encoding and a context It can be reimplemented by the user to perform custom checks depending on the context received.
The default implementation falls back to using the callback without context.
| [in] | context | Context that can be used during check. |
| [in] | representation | Representation of the data. |
|
inlinevirtual |
Register TypeObject type representation.
Reimplemented in DynamicPubSubType.
|
inlinevirtual |
Register TypeObject type representation It can be reimplemented by the user to perform custom registration depending on the context received.
The default implementation falls back to using the callback without context.
| [in] | context | Context that can be used during registration. |
|
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.
| [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. |
Implemented in DynamicPubSubType.
|
inlinevirtual |
Serialize method with context, it can be reimplemented by the user to perform custom serialization depending on the context received.
The default implementation falls back to using the callback without context. It is VERY IMPORTANT that the user sets the SerializedPayload length correctly.
| [in] | context | Context that can be used during serialization. |
| [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. |
|
inline |
Set topic data type name.
| nam | Topic data type name |
|
inline |
Set topic data type name.
| nam | Topic data type name |
|
inline |
Get the type identifiers.
| bool is_compute_key_provided {false} |
Indicates whether the method to obtain the key has been implemented.
| 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.
|
protected |