15#ifndef FASTDDS_DDS_XTYPES_DYNAMIC_TYPES__DYNAMICPUBSUBTYPE_HPP
16#define FASTDDS_DDS_XTYPES_DYNAMIC_TYPES__DYNAMICPUBSUBTYPE_HPP
18#include <fastdds/dds/core/ReturnCode.hpp>
19#include <fastdds/dds/topic/TopicDataType.hpp>
20#include <fastdds/dds/xtypes/dynamic_types/Types.hpp>
21#include <fastdds/dds/xtypes/type_representation/TypeObject.hpp>
22#include <fastdds/rtps/common/InstanceHandle.hpp>
23#include <fastdds/rtps/common/SerializedPayload.hpp>
24#include <fastdds/utils/md5.hpp>
37 unsigned char* key_buffer_ {
nullptr};
108 void* data)
override;
127 eprosima::fastdds::rtps::SerializedPayload_t& payload,
129 bool force_md5 = false) override;
141 const
void* const data,
143 bool force_md5 = false) override;
154 const
void* const data,
167 const
void* const data,
168 eprosima::fastdds::rtps::SerializedPayload_t& payload,
190 void update_dynamic_type();
Class MD5, for calculating MD5 hashes of strings or byte arrays it is not meant to be fast or secure.
Definition md5.hpp:63
Definition DynamicPubSubType.hpp:34
FASTDDS_EXPORTED_API bool deserialize(eprosima::fastdds::rtps::SerializedPayload_t &payload, void *data) override
Deserialize an object from the given payload.
FASTDDS_EXPORTED_API DynamicPubSubType(traits< DynamicType >::ref_type type, const xtypes::TypeInformation &type_information)
Constructs a DynamicPubSubType from a DynamicType and a xtypes::TypeInformation.
FASTDDS_EXPORTED_API void * create_data() override
Create a new data object of the specified type.
virtual FASTDDS_EXPORTED_API ~DynamicPubSubType()
FASTDDS_EXPORTED_API bool serialize(const void *const data, eprosima::fastdds::rtps::SerializedPayload_t &payload, fastdds::dds::DataRepresentationId_t data_representation) override
Serialize an object into a given payload.
FASTDDS_EXPORTED_API bool compute_key(eprosima::fastdds::rtps::SerializedPayload_t &payload, eprosima::fastdds::rtps::InstanceHandle_t &ihandle, bool force_md5=false) override
Calculate the key associated to a given object.
FASTDDS_EXPORTED_API traits< DynamicType >::ref_type get_dynamic_type() const noexcept
Returns a copy of the internal DynamicType object.
FASTDDS_EXPORTED_API void register_type_object_representation() override
Register TypeObject representation in Fast DDS TypeObjectRegistry.
FASTDDS_EXPORTED_API void delete_data(void *data) override
Deletes an object previously allocated via create_data.
FASTDDS_EXPORTED_API ReturnCode_t set_dynamic_type(traits< DynamicType >::ref_type type)
Sets up the internal DynamicType object.
FASTDDS_EXPORTED_API uint32_t calculate_serialized_size(const void *const data, DataRepresentationId_t data_representation) override
Provide a functor that calculates a specified object serialized size.
FASTDDS_EXPORTED_API DynamicPubSubType()=default
FASTDDS_EXPORTED_API DynamicPubSubType(traits< DynamicType >::ref_type type)
Constructs a DynamicPubSubType from a DynamicType.
Definition DynamicType.hpp:33
Class TopicDataType used to provide the DomainRTPSParticipant with the methods to serialize,...
Definition TopicDataType.hpp:61
Definition DomainParticipant.hpp:45
enum eprosima::fastdds::dds::DataRepresentationId DataRepresentationId_t
Enum DataRepresentationId, different kinds of topic data representation.
int32_t ReturnCode_t
Definition DDSReturnCode.hpp:59
Definition type_traits.hpp:23
typename ::std::shared_ptr< T > ref_type
Definition type_traits.hpp:29
Struct InstanceHandle_t, used to contain the key for WITH_KEY topics.
Definition InstanceHandle.hpp:154
Structure SerializedPayload_t.
Definition SerializedPayload.hpp:59