15 setName(
"std_msgs::msg::dds_::Header_");
17 auto type_size = Header::getMaxCdrSerializedSize();
19 type_size += eprosima::fastcdr::Cdr::alignment(type_size, 4);
21 m_typeSize =
static_cast<uint32_t
>(type_size) + 4;
23 m_isGetKeyDefined = Header::isKeyDefined();
25 size_t keyLength = Header::getKeyMaxCdrSerializedSize() > 16 ?
26 Header::getKeyMaxCdrSerializedSize() : 16;
28 m_keyBuffer =
reinterpret_cast<unsigned char*
>(malloc(keyLength));
45 Header* p_type =
static_cast<Header*
>(data);
48 eprosima::fastcdr::FastBuffer fastbuffer(
reinterpret_cast<char*
>(payload->data), payload->max_size);
50 eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, eprosima::fastcdr::Cdr::DDS_CDR);
52 payload->encapsulation = ser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE;
54 ser.serialize_encapsulation();
56 p_type->serialize(ser);
58 payload->length =
static_cast<uint32_t
>(ser.getSerializedDataLength());
67 Header* p_type =
static_cast<Header*
>(data);
70 eprosima::fastcdr::FastBuffer fastbuffer(
reinterpret_cast<char*
>(payload->data), payload->length);
73 eprosima::fastcdr::Cdr deser(fastbuffer, eprosima::fastcdr::Cdr::DEFAULT_ENDIAN, eprosima::fastcdr::Cdr::DDS_CDR);
76 deser.read_encapsulation();
78 payload->encapsulation = deser.endianness() == eprosima::fastcdr::Cdr::BIG_ENDIANNESS ? CDR_BE : CDR_LE;
81 p_type->deserialize(deser);
111 if (!m_isGetKeyDefined)
116 Header* p_type =
static_cast<Header*
>(data);
119 eprosima::fastcdr::FastBuffer fastbuffer(
reinterpret_cast<char*
>(
m_keyBuffer),
120 Header::getKeyMaxCdrSerializedSize());
123 eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS);
125 p_type->serializeKey(ser);
126 if (force_md5 || Header::getKeyMaxCdrSerializedSize() > 16)
129 m_md5.update(
m_keyBuffer,
static_cast<unsigned int>(ser.getSerializedDataLength()));
131 for (uint8_t i = 0; i < 16; ++i)
133 handle->value[i] =
m_md5.digest[i];
138 for (uint8_t i = 0; i < 16; ++i)