22#include <fastcdr/FastBuffer.h>
23#include <fastcdr/Cdr.h>
35 setName(
"carla_msgs::msg::dds_::CarlaCollisionEvent_");
39 auto type_size = CarlaCollisionEvent::getMaxCdrSerializedSize();
43 type_size += eprosima::fastcdr::Cdr::alignment(type_size, 4);
46 m_typeSize =
static_cast<uint32_t
>(type_size) + 4;
50 m_isGetKeyDefined = CarlaCollisionEvent::isKeyDefined();
54 size_t keyLength = CarlaCollisionEvent::getKeyMaxCdrSerializedSize() > 16 ?
55 CarlaCollisionEvent::getKeyMaxCdrSerializedSize() : 16;
59 m_keyBuffer =
reinterpret_cast<unsigned char*
>(malloc(keyLength));
79 CarlaCollisionEvent* p_type =
static_cast<CarlaCollisionEvent*
>(data);
83 eprosima::fastcdr::FastBuffer fastbuffer(
reinterpret_cast<char*
>(payload->data), payload->max_size);
87 eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, eprosima::fastcdr::Cdr::DDS_CDR);
91 payload->encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE;
94 ser.serialize_encapsulation();
100 p_type->serialize(ser);
102 catch (eprosima::fastcdr::exception::NotEnoughMemoryException& )
109 payload->length =
static_cast<uint32_t
>(ser.getSerializedDataLength());
123 CarlaCollisionEvent* p_type =
static_cast<CarlaCollisionEvent*
>(data);
126 eprosima::fastcdr::FastBuffer fastbuffer(
reinterpret_cast<char*
>(payload->data), payload->length);
129 eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, eprosima::fastcdr::Cdr::DDS_CDR);
132 deser.read_encapsulation();
133 payload->encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE;
136 p_type->deserialize(deser);
138 catch (eprosima::fastcdr::exception::NotEnoughMemoryException& )
149 return [data]() -> uint32_t
151 return static_cast<uint32_t
>(type::getCdrSerializedSize(*
static_cast<CarlaCollisionEvent*
>(data))) +
158 return reinterpret_cast<void*
>(
new CarlaCollisionEvent());
164 delete(
reinterpret_cast<CarlaCollisionEvent*
>(data));
172 if (!m_isGetKeyDefined)
177 CarlaCollisionEvent* p_type =
static_cast<CarlaCollisionEvent*
>(data);
180 eprosima::fastcdr::FastBuffer fastbuffer(
reinterpret_cast<char*
>(
m_keyBuffer),
181 CarlaCollisionEvent::getKeyMaxCdrSerializedSize());
184 eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS);
185 p_type->serializeKey(ser);
186 if (force_md5 || CarlaCollisionEvent::getKeyMaxCdrSerializedSize() > 16)
189 m_md5.update(
m_keyBuffer,
static_cast<unsigned int>(ser.getSerializedDataLength()));
191 for (uint8_t i = 0; i < 16; ++i)
193 handle->value[i] =
m_md5.digest[i];
198 for (uint8_t i = 0; i < 16; ++i)
eprosima::fastrtps::rtps::InstanceHandle_t InstanceHandle_t
eprosima::fastrtps::rtps::SerializedPayload_t SerializedPayload_t
unsigned char * m_keyBuffer
virtual eProsima_user_DllExport ~CarlaCollisionEventPubSubType() override
virtual eProsima_user_DllExport bool serialize(void *data, eprosima::fastrtps::rtps::SerializedPayload_t *payload) override
virtual eProsima_user_DllExport bool getKey(void *data, eprosima::fastrtps::rtps::InstanceHandle_t *ihandle, bool force_md5=false) override
virtual eProsima_user_DllExport void deleteData(void *data) override
virtual eProsima_user_DllExport void * createData() override
virtual eProsima_user_DllExport bool deserialize(eprosima::fastrtps::rtps::SerializedPayload_t *payload, void *data) override
virtual eProsima_user_DllExport std::function< uint32_t()> getSerializedSizeProvider(void *data) override
eProsima_user_DllExport CarlaCollisionEventPubSubType()