17.1.5.2. TypeSupport¶
-
class eprosima::fastdds::dds::TypeSupport : public std::shared_ptr<fastdds::dds::TopicDataType>¶
Class TypeSupport 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.
Note
This class inherits from std::shared_ptr<TopicDataType>.
Subclassed by eprosima::fastdds::dds::builtin::TypeLookup_ReplyTypeSupport, eprosima::fastdds::dds::builtin::TypeLookup_RequestTypeSupport
Public Functions
-
TypeSupport() noexcept = default¶
Constructor.
-
TypeSupport(const TypeSupport &type) noexcept = default¶
Copy Constructor.
- Parameters
type – Another instance of TypeSupport
-
TypeSupport(TypeSupport &&type) noexcept = default¶
Move Constructor.
- Parameters
type – Another instance of TypeSupport
-
TypeSupport &operator=(const TypeSupport &type) noexcept = default¶
Copy Assignment.
- Parameters
type – Another instance of TypeSupport
-
TypeSupport &operator=(TypeSupport &&type) noexcept = default¶
Move Assignment.
- Parameters
type – Another instance of TypeSupport
-
inline explicit TypeSupport(fastdds::dds::TopicDataType *ptr)¶
TypeSupport constructor that receives a TopicDataType pointer.
The passed pointer will be managed by the TypeSupport object, so creating two TypeSupport from the same pointer or deleting the passed pointer will produce a runtime error.
- Parameters
ptr –
-
inline TypeSupport(fastrtps::types::DynamicPubSubType ptr)¶
TypeSupport constructor that receives a DynamicPubSubType.
It will copy the instance so the user will keep the ownership of his object.
- Parameters
ptr –
-
virtual ReturnCode_t register_type(DomainParticipant *participant) const¶
Registers the type on a participant.
- Parameters
participant – DomainParticipant where the type is going to be registered
- Returns
RETCODE_BAD_PARAMETER if the type name is empty, RETCODE_PRECONDITION_NOT_MET if there is another type with the same name registered on the DomainParticipant and RETCODE_OK if it is registered correctly
-
virtual ReturnCode_t register_type(DomainParticipant *participant, std::string type_name) const¶
Registers the type on a participant.
- Parameters
participant – DomainParticipant where the type is going to be registered
type_name – Name of the type to register
- Returns
RETCODE_BAD_PARAMETER if the type name is empty, RETCODE_PRECONDITION_NOT_MET if there is another type with the same name registered on the DomainParticipant and RETCODE_OK if it is registered correctly
-
inline virtual const std::string &get_type_name() const¶
Getter for the type name.
- Returns
name of the data type
-
virtual bool serialize(void *data, fastrtps::rtps::SerializedPayload_t *payload)¶
Serializes the data.
- Parameters
data – Pointer to data
payload – Pointer to payload
- Returns
true if it is serialized correctly, false if not
-
virtual bool deserialize(fastrtps::rtps::SerializedPayload_t *payload, void *data)¶
Deserializes the data.
- Parameters
payload – Pointer to payload
data – Pointer to data
- Returns
true if it is deserialized correctly, false if not
-
inline virtual std::function<uint32_t()> get_serialized_size_provider(void *data)¶
Getter for the SerializedSizeProvider.
- Parameters
data – Pointer to data
- Returns
function
-
inline virtual void *create_data()¶
Creates new data.
- Returns
Pointer to the data
-
inline virtual void delete_data(void *data)¶
Deletes data.
- Parameters
data – Pointer to the data to delete
-
inline virtual bool get_key(void *data, InstanceHandle_t *i_handle, bool force_md5 = false)¶
Getter for the data key.
- Parameters
data – Pointer to data
i_handle – InstanceHandle pointer to store the key
force_md5 – boolean to force md5 (default: false)
- Returns
true if the key is returned, false if not
-
inline bool empty() const¶
Check if the TypeSupport is empty.
- Returns
true if empty, false if not
-
inline virtual bool is_bounded() const¶
Checks if the type is bounded.
-
inline virtual bool is_plain() const¶
Checks if the type is plain.
-
TypeSupport() noexcept = default¶