|
- // Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
-
- /*!
- * @file DDSSampleMachinePubSubTypes.cpp
- * This header file contains the implementation of the serialization functions.
- *
- * This file was generated by the tool fastddsgen.
- */
-
- #include "DDSSampleMachinePubSubTypes.hpp"
-
- #include <fastdds/dds/log/Log.hpp>
- #include <fastdds/rtps/common/CdrSerialization.hpp>
-
- #include "DDSSampleMachineCdrAux.hpp"
- #include "DDSSampleMachineTypeObjectSupport.hpp"
-
- using SerializedPayload_t = eprosima::fastdds::rtps::SerializedPayload_t;
- using InstanceHandle_t = eprosima::fastdds::rtps::InstanceHandle_t;
- using DataRepresentationId_t = eprosima::fastdds::dds::DataRepresentationId_t;
-
- namespace SampleModule {
- SampleConfigPubSubType::SampleConfigPubSubType()
- {
- set_name("SampleModule::SampleConfig");
- uint32_t type_size = SampleModule_SampleConfig_max_cdr_typesize;
- type_size += static_cast<uint32_t>(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */
- max_serialized_type_size = type_size + 4; /*encapsulation*/
- is_compute_key_provided = false;
- uint32_t key_length = SampleModule_SampleConfig_max_key_cdr_typesize > 16 ? SampleModule_SampleConfig_max_key_cdr_typesize : 16;
- key_buffer_ = reinterpret_cast<unsigned char*>(malloc(key_length));
- memset(key_buffer_, 0, key_length);
- }
-
- SampleConfigPubSubType::~SampleConfigPubSubType()
- {
- if (key_buffer_ != nullptr)
- {
- free(key_buffer_);
- }
- }
-
- bool SampleConfigPubSubType::serialize(
- const void* const data,
- SerializedPayload_t& payload,
- DataRepresentationId_t data_representation)
- {
- const SampleConfig* p_type = static_cast<const SampleConfig*>(data);
-
- // Object that manages the raw buffer.
- eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast<char*>(payload.data), payload.max_size);
- // Object that serializes the data.
- eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN,
- data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ?
- eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2);
- payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE;
- ser.set_encoding_flag(
- data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ?
- eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR :
- eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2);
-
- try
- {
- // Serialize encapsulation
- ser.serialize_encapsulation();
- // Serialize the object.
- ser << *p_type;
- ser.set_dds_cdr_options({0,0});
- }
- catch (eprosima::fastcdr::exception::Exception& /*exception*/)
- {
- return false;
- }
-
- // Get the serialized length
- payload.length = static_cast<uint32_t>(ser.get_serialized_data_length());
- return true;
- }
-
- bool SampleConfigPubSubType::deserialize(
- SerializedPayload_t& payload,
- void* data)
- {
- try
- {
- // Convert DATA to pointer of your type
- SampleConfig* p_type = static_cast<SampleConfig*>(data);
-
- // Object that manages the raw buffer.
- eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast<char*>(payload.data), payload.length);
-
- // Object that deserializes the data.
- eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN);
-
- // Deserialize encapsulation.
- deser.read_encapsulation();
- payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE;
-
- // Deserialize the object.
- deser >> *p_type;
- }
- catch (eprosima::fastcdr::exception::Exception& /*exception*/)
- {
- return false;
- }
-
- return true;
- }
-
- uint32_t SampleConfigPubSubType::calculate_serialized_size(
- const void* const data,
- DataRepresentationId_t data_representation)
- {
- try
- {
- eprosima::fastcdr::CdrSizeCalculator calculator(
- data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ?
- eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2);
- size_t current_alignment {0};
- return static_cast<uint32_t>(calculator.calculate_serialized_size(
- *static_cast<const SampleConfig*>(data), current_alignment)) +
- 4u /*encapsulation*/;
- }
- catch (eprosima::fastcdr::exception::Exception& /*exception*/)
- {
- return 0;
- }
- }
-
- void* SampleConfigPubSubType::create_data()
- {
- return reinterpret_cast<void*>(new SampleConfig());
- }
-
- void SampleConfigPubSubType::delete_data(
- void* data)
- {
- delete(reinterpret_cast<SampleConfig*>(data));
- }
-
- bool SampleConfigPubSubType::compute_key(
- SerializedPayload_t& payload,
- InstanceHandle_t& handle,
- bool force_md5)
- {
- if (!is_compute_key_provided)
- {
- return false;
- }
-
- SampleConfig data;
- if (deserialize(payload, static_cast<void*>(&data)))
- {
- return compute_key(static_cast<void*>(&data), handle, force_md5);
- }
-
- return false;
- }
-
- bool SampleConfigPubSubType::compute_key(
- const void* const data,
- InstanceHandle_t& handle,
- bool force_md5)
- {
- if (!is_compute_key_provided)
- {
- return false;
- }
-
- const SampleConfig* p_type = static_cast<const SampleConfig*>(data);
-
- // Object that manages the raw buffer.
- eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast<char*>(key_buffer_),
- SampleModule_SampleConfig_max_key_cdr_typesize);
-
- // Object that serializes the data.
- eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2);
- ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2);
- eprosima::fastcdr::serialize_key(ser, *p_type);
- if (force_md5 || SampleModule_SampleConfig_max_key_cdr_typesize > 16)
- {
- md5_.init();
- md5_.update(key_buffer_, static_cast<unsigned int>(ser.get_serialized_data_length()));
- md5_.finalize();
- for (uint8_t i = 0; i < 16; ++i)
- {
- handle.value[i] = md5_.digest[i];
- }
- }
- else
- {
- for (uint8_t i = 0; i < 16; ++i)
- {
- handle.value[i] = key_buffer_[i];
- }
- }
- return true;
- }
-
- void SampleConfigPubSubType::register_type_object_representation()
- {
- register_SampleConfig_type_identifier(type_identifiers_);
- }
-
- SampleCommandPubSubType::SampleCommandPubSubType()
- {
- set_name("SampleModule::SampleCommand");
- uint32_t type_size = SampleModule_SampleCommand_max_cdr_typesize;
- type_size += static_cast<uint32_t>(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */
- max_serialized_type_size = type_size + 4; /*encapsulation*/
- is_compute_key_provided = false;
- uint32_t key_length = SampleModule_SampleCommand_max_key_cdr_typesize > 16 ? SampleModule_SampleCommand_max_key_cdr_typesize : 16;
- key_buffer_ = reinterpret_cast<unsigned char*>(malloc(key_length));
- memset(key_buffer_, 0, key_length);
- }
-
- SampleCommandPubSubType::~SampleCommandPubSubType()
- {
- if (key_buffer_ != nullptr)
- {
- free(key_buffer_);
- }
- }
-
- bool SampleCommandPubSubType::serialize(
- const void* const data,
- SerializedPayload_t& payload,
- DataRepresentationId_t data_representation)
- {
- const SampleCommand* p_type = static_cast<const SampleCommand*>(data);
-
- // Object that manages the raw buffer.
- eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast<char*>(payload.data), payload.max_size);
- // Object that serializes the data.
- eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN,
- data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ?
- eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2);
- payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE;
- ser.set_encoding_flag(
- data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ?
- eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR :
- eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2);
-
- try
- {
- // Serialize encapsulation
- ser.serialize_encapsulation();
- // Serialize the object.
- ser << *p_type;
- ser.set_dds_cdr_options({0,0});
- }
- catch (eprosima::fastcdr::exception::Exception& /*exception*/)
- {
- return false;
- }
-
- // Get the serialized length
- payload.length = static_cast<uint32_t>(ser.get_serialized_data_length());
- return true;
- }
-
- bool SampleCommandPubSubType::deserialize(
- SerializedPayload_t& payload,
- void* data)
- {
- try
- {
- // Convert DATA to pointer of your type
- SampleCommand* p_type = static_cast<SampleCommand*>(data);
-
- // Object that manages the raw buffer.
- eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast<char*>(payload.data), payload.length);
-
- // Object that deserializes the data.
- eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN);
-
- // Deserialize encapsulation.
- deser.read_encapsulation();
- payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE;
-
- // Deserialize the object.
- deser >> *p_type;
- }
- catch (eprosima::fastcdr::exception::Exception& /*exception*/)
- {
- return false;
- }
-
- return true;
- }
-
- uint32_t SampleCommandPubSubType::calculate_serialized_size(
- const void* const data,
- DataRepresentationId_t data_representation)
- {
- try
- {
- eprosima::fastcdr::CdrSizeCalculator calculator(
- data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ?
- eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2);
- size_t current_alignment {0};
- return static_cast<uint32_t>(calculator.calculate_serialized_size(
- *static_cast<const SampleCommand*>(data), current_alignment)) +
- 4u /*encapsulation*/;
- }
- catch (eprosima::fastcdr::exception::Exception& /*exception*/)
- {
- return 0;
- }
- }
-
- void* SampleCommandPubSubType::create_data()
- {
- return reinterpret_cast<void*>(new SampleCommand());
- }
-
- void SampleCommandPubSubType::delete_data(
- void* data)
- {
- delete(reinterpret_cast<SampleCommand*>(data));
- }
-
- bool SampleCommandPubSubType::compute_key(
- SerializedPayload_t& payload,
- InstanceHandle_t& handle,
- bool force_md5)
- {
- if (!is_compute_key_provided)
- {
- return false;
- }
-
- SampleCommand data;
- if (deserialize(payload, static_cast<void*>(&data)))
- {
- return compute_key(static_cast<void*>(&data), handle, force_md5);
- }
-
- return false;
- }
-
- bool SampleCommandPubSubType::compute_key(
- const void* const data,
- InstanceHandle_t& handle,
- bool force_md5)
- {
- if (!is_compute_key_provided)
- {
- return false;
- }
-
- const SampleCommand* p_type = static_cast<const SampleCommand*>(data);
-
- // Object that manages the raw buffer.
- eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast<char*>(key_buffer_),
- SampleModule_SampleCommand_max_key_cdr_typesize);
-
- // Object that serializes the data.
- eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2);
- ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2);
- eprosima::fastcdr::serialize_key(ser, *p_type);
- if (force_md5 || SampleModule_SampleCommand_max_key_cdr_typesize > 16)
- {
- md5_.init();
- md5_.update(key_buffer_, static_cast<unsigned int>(ser.get_serialized_data_length()));
- md5_.finalize();
- for (uint8_t i = 0; i < 16; ++i)
- {
- handle.value[i] = md5_.digest[i];
- }
- }
- else
- {
- for (uint8_t i = 0; i < 16; ++i)
- {
- handle.value[i] = key_buffer_[i];
- }
- }
- return true;
- }
-
- void SampleCommandPubSubType::register_type_object_representation()
- {
- register_SampleCommand_type_identifier(type_identifiers_);
- }
-
- SampleMachineInfoPubSubType::SampleMachineInfoPubSubType()
- {
- set_name("SampleModule::SampleMachineInfo");
- uint32_t type_size = SampleModule_SampleMachineInfo_max_cdr_typesize;
- type_size += static_cast<uint32_t>(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */
- max_serialized_type_size = type_size + 4; /*encapsulation*/
- is_compute_key_provided = false;
- uint32_t key_length = SampleModule_SampleMachineInfo_max_key_cdr_typesize > 16 ? SampleModule_SampleMachineInfo_max_key_cdr_typesize : 16;
- key_buffer_ = reinterpret_cast<unsigned char*>(malloc(key_length));
- memset(key_buffer_, 0, key_length);
- }
-
- SampleMachineInfoPubSubType::~SampleMachineInfoPubSubType()
- {
- if (key_buffer_ != nullptr)
- {
- free(key_buffer_);
- }
- }
-
- bool SampleMachineInfoPubSubType::serialize(
- const void* const data,
- SerializedPayload_t& payload,
- DataRepresentationId_t data_representation)
- {
- const SampleMachineInfo* p_type = static_cast<const SampleMachineInfo*>(data);
-
- // Object that manages the raw buffer.
- eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast<char*>(payload.data), payload.max_size);
- // Object that serializes the data.
- eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN,
- data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ?
- eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2);
- payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE;
- ser.set_encoding_flag(
- data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ?
- eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR :
- eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2);
-
- try
- {
- // Serialize encapsulation
- ser.serialize_encapsulation();
- // Serialize the object.
- ser << *p_type;
- ser.set_dds_cdr_options({0,0});
- }
- catch (eprosima::fastcdr::exception::Exception& /*exception*/)
- {
- return false;
- }
-
- // Get the serialized length
- payload.length = static_cast<uint32_t>(ser.get_serialized_data_length());
- return true;
- }
-
- bool SampleMachineInfoPubSubType::deserialize(
- SerializedPayload_t& payload,
- void* data)
- {
- try
- {
- // Convert DATA to pointer of your type
- SampleMachineInfo* p_type = static_cast<SampleMachineInfo*>(data);
-
- // Object that manages the raw buffer.
- eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast<char*>(payload.data), payload.length);
-
- // Object that deserializes the data.
- eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN);
-
- // Deserialize encapsulation.
- deser.read_encapsulation();
- payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE;
-
- // Deserialize the object.
- deser >> *p_type;
- }
- catch (eprosima::fastcdr::exception::Exception& /*exception*/)
- {
- return false;
- }
-
- return true;
- }
-
- uint32_t SampleMachineInfoPubSubType::calculate_serialized_size(
- const void* const data,
- DataRepresentationId_t data_representation)
- {
- try
- {
- eprosima::fastcdr::CdrSizeCalculator calculator(
- data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ?
- eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2);
- size_t current_alignment {0};
- return static_cast<uint32_t>(calculator.calculate_serialized_size(
- *static_cast<const SampleMachineInfo*>(data), current_alignment)) +
- 4u /*encapsulation*/;
- }
- catch (eprosima::fastcdr::exception::Exception& /*exception*/)
- {
- return 0;
- }
- }
-
- void* SampleMachineInfoPubSubType::create_data()
- {
- return reinterpret_cast<void*>(new SampleMachineInfo());
- }
-
- void SampleMachineInfoPubSubType::delete_data(
- void* data)
- {
- delete(reinterpret_cast<SampleMachineInfo*>(data));
- }
-
- bool SampleMachineInfoPubSubType::compute_key(
- SerializedPayload_t& payload,
- InstanceHandle_t& handle,
- bool force_md5)
- {
- if (!is_compute_key_provided)
- {
- return false;
- }
-
- SampleMachineInfo data;
- if (deserialize(payload, static_cast<void*>(&data)))
- {
- return compute_key(static_cast<void*>(&data), handle, force_md5);
- }
-
- return false;
- }
-
- bool SampleMachineInfoPubSubType::compute_key(
- const void* const data,
- InstanceHandle_t& handle,
- bool force_md5)
- {
- if (!is_compute_key_provided)
- {
- return false;
- }
-
- const SampleMachineInfo* p_type = static_cast<const SampleMachineInfo*>(data);
-
- // Object that manages the raw buffer.
- eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast<char*>(key_buffer_),
- SampleModule_SampleMachineInfo_max_key_cdr_typesize);
-
- // Object that serializes the data.
- eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2);
- ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2);
- eprosima::fastcdr::serialize_key(ser, *p_type);
- if (force_md5 || SampleModule_SampleMachineInfo_max_key_cdr_typesize > 16)
- {
- md5_.init();
- md5_.update(key_buffer_, static_cast<unsigned int>(ser.get_serialized_data_length()));
- md5_.finalize();
- for (uint8_t i = 0; i < 16; ++i)
- {
- handle.value[i] = md5_.digest[i];
- }
- }
- else
- {
- for (uint8_t i = 0; i < 16; ++i)
- {
- handle.value[i] = key_buffer_[i];
- }
- }
- return true;
- }
-
- void SampleMachineInfoPubSubType::register_type_object_representation()
- {
- register_SampleMachineInfo_type_identifier(type_identifiers_);
- }
-
- SamplePointsPubSubType::SamplePointsPubSubType()
- {
- set_name("SampleModule::SamplePoints");
- uint32_t type_size = SampleModule_SamplePoints_max_cdr_typesize;
- type_size += static_cast<uint32_t>(eprosima::fastcdr::Cdr::alignment(type_size, 4)); /* possible submessage alignment */
- max_serialized_type_size = type_size + 4; /*encapsulation*/
- is_compute_key_provided = false;
- uint32_t key_length = SampleModule_SamplePoints_max_key_cdr_typesize > 16 ? SampleModule_SamplePoints_max_key_cdr_typesize : 16;
- key_buffer_ = reinterpret_cast<unsigned char*>(malloc(key_length));
- memset(key_buffer_, 0, key_length);
- }
-
- SamplePointsPubSubType::~SamplePointsPubSubType()
- {
- if (key_buffer_ != nullptr)
- {
- free(key_buffer_);
- }
- }
-
- bool SamplePointsPubSubType::serialize(
- const void* const data,
- SerializedPayload_t& payload,
- DataRepresentationId_t data_representation)
- {
- const SamplePoints* p_type = static_cast<const SamplePoints*>(data);
-
- // Object that manages the raw buffer.
- eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast<char*>(payload.data), payload.max_size);
- // Object that serializes the data.
- eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN,
- data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ?
- eprosima::fastcdr::CdrVersion::XCDRv1 : eprosima::fastcdr::CdrVersion::XCDRv2);
- payload.encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE;
- ser.set_encoding_flag(
- data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ?
- eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR :
- eprosima::fastcdr::EncodingAlgorithmFlag::DELIMIT_CDR2);
-
- try
- {
- // Serialize encapsulation
- ser.serialize_encapsulation();
- // Serialize the object.
- ser << *p_type;
- ser.set_dds_cdr_options({0,0});
- }
- catch (eprosima::fastcdr::exception::Exception& /*exception*/)
- {
- return false;
- }
-
- // Get the serialized length
- payload.length = static_cast<uint32_t>(ser.get_serialized_data_length());
- return true;
- }
-
- bool SamplePointsPubSubType::deserialize(
- SerializedPayload_t& payload,
- void* data)
- {
- try
- {
- // Convert DATA to pointer of your type
- SamplePoints* p_type = static_cast<SamplePoints*>(data);
-
- // Object that manages the raw buffer.
- eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast<char*>(payload.data), payload.length);
-
- // Object that deserializes the data.
- eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN);
-
- // Deserialize encapsulation.
- deser.read_encapsulation();
- payload.encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE;
-
- // Deserialize the object.
- deser >> *p_type;
- }
- catch (eprosima::fastcdr::exception::Exception& /*exception*/)
- {
- return false;
- }
-
- return true;
- }
-
- uint32_t SamplePointsPubSubType::calculate_serialized_size(
- const void* const data,
- DataRepresentationId_t data_representation)
- {
- try
- {
- eprosima::fastcdr::CdrSizeCalculator calculator(
- data_representation == DataRepresentationId_t::XCDR_DATA_REPRESENTATION ?
- eprosima::fastcdr::CdrVersion::XCDRv1 :eprosima::fastcdr::CdrVersion::XCDRv2);
- size_t current_alignment {0};
- return static_cast<uint32_t>(calculator.calculate_serialized_size(
- *static_cast<const SamplePoints*>(data), current_alignment)) +
- 4u /*encapsulation*/;
- }
- catch (eprosima::fastcdr::exception::Exception& /*exception*/)
- {
- return 0;
- }
- }
-
- void* SamplePointsPubSubType::create_data()
- {
- return reinterpret_cast<void*>(new SamplePoints());
- }
-
- void SamplePointsPubSubType::delete_data(
- void* data)
- {
- delete(reinterpret_cast<SamplePoints*>(data));
- }
-
- bool SamplePointsPubSubType::compute_key(
- SerializedPayload_t& payload,
- InstanceHandle_t& handle,
- bool force_md5)
- {
- if (!is_compute_key_provided)
- {
- return false;
- }
-
- SamplePoints data;
- if (deserialize(payload, static_cast<void*>(&data)))
- {
- return compute_key(static_cast<void*>(&data), handle, force_md5);
- }
-
- return false;
- }
-
- bool SamplePointsPubSubType::compute_key(
- const void* const data,
- InstanceHandle_t& handle,
- bool force_md5)
- {
- if (!is_compute_key_provided)
- {
- return false;
- }
-
- const SamplePoints* p_type = static_cast<const SamplePoints*>(data);
-
- // Object that manages the raw buffer.
- eprosima::fastcdr::FastBuffer fastbuffer(reinterpret_cast<char*>(key_buffer_),
- SampleModule_SamplePoints_max_key_cdr_typesize);
-
- // Object that serializes the data.
- eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2);
- ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2);
- eprosima::fastcdr::serialize_key(ser, *p_type);
- if (force_md5 || SampleModule_SamplePoints_max_key_cdr_typesize > 16)
- {
- md5_.init();
- md5_.update(key_buffer_, static_cast<unsigned int>(ser.get_serialized_data_length()));
- md5_.finalize();
- for (uint8_t i = 0; i < 16; ++i)
- {
- handle.value[i] = md5_.digest[i];
- }
- }
- else
- {
- for (uint8_t i = 0; i < 16; ++i)
- {
- handle.value[i] = key_buffer_[i];
- }
- }
- return true;
- }
-
- void SamplePointsPubSubType::register_type_object_representation()
- {
- register_SamplePoints_type_identifier(type_identifiers_);
- }
-
- } // namespace SampleModule
-
-
- // Include auxiliary functions like for serializing/deserializing.
- #include "DDSSampleMachineCdrAux.ipp"
|