bool Data64kbType::deserialize(SerializedPayload_t* payload, void* data) { Data64kb* p_type = (Data64kb*) data; //Convert DATA to pointer of your type eprosima::fastcdr::FastBuffer fastbuffer((char*)payload->data, payload->length); // Object that manages the raw buffer. eprosima::fastcdr::Cdr deser(fastbuffer, payload->encapsulation == CDR_BE ? eprosima::fastcdr::Cdr::BIG_ENDIANNESS : eprosima::fastcdr::Cdr::LITTLE_ENDIANNESS); // Object that deserializes the data. p_type->deserialize(deser); //Deserialize the object: return true; }
bool MetaTestTypesPubSubType::getKey(void *data, InstanceHandle_t* handle) { if(!m_isGetKeyDefined) return false; MetaTestType* p_type = (MetaTestType*) data; // Object that manages the raw buffer. eprosima::fastcdr::FastBuffer fastbuffer((char*)m_keyBuffer,MetaTestType::getKeyMaxCdrSerializedSize()); // Object that serializes the data. eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS); p_type->serializeKey(ser); if(MetaTestType::getKeyMaxCdrSerializedSize()>16) { m_md5.init(); m_md5.update(m_keyBuffer,(unsigned int)ser.getSerializedDataLength()); m_md5.finalize(); for(uint8_t i = 0; i<16; ++i) { handle->value[i] = m_md5.digest[i]; } } else { for(uint8_t i = 0; i<16; ++i) { handle->value[i] = m_keyBuffer[i]; } } return true; }
bool Data64kbType::serialize(void *data, SerializedPayload_t *payload) { Data64kb *p_type = (Data64kb*) data; eprosima::fastcdr::FastBuffer fastbuffer((char*) payload->data, payload->max_size); // Object that manages the raw buffer. eprosima::fastcdr::Cdr ser(fastbuffer,eprosima::fastcdr::Cdr::LITTLE_ENDIANNESS); // Object that serializes the data. payload->encapsulation = CDR_LE; //Select the correct endianess p_type->serialize(ser); // Serialize the object: payload->length = (uint16_t)ser.getSerializedDataLength(); //Get the serialized length return true; }
bool HelloWorldType::deserialize(SerializedPayload_t* payload, void* data) { HelloWorld* hw = (HelloWorld*) data; // Object that manages the raw buffer. eprosima::fastcdr::FastBuffer fastbuffer((char*)payload->data, payload->length); // Object that serializes the data. eprosima::fastcdr::Cdr deser(fastbuffer); //serialize the object: hw->deserialize(deser); return true; }
bool HelloWorldType::serialize(void* data, SerializedPayload_t* payload) { HelloWorld* hw = (HelloWorld*) data; // Object that manages the raw buffer. eprosima::fastcdr::FastBuffer fastbuffer((char*)payload->data, payload->max_size); // Object that serializes the data. eprosima::fastcdr::Cdr ser(fastbuffer); //serialize the object: hw->serialize(ser); payload->length = (uint16_t)ser.getSerializedDataLength(); return true; }
bool MetaTestTypesPubSubType::deserialize(SerializedPayload_t* payload, void* data) { //CONVERT DATA to pointer of your type MetaTestType* p_type = (MetaTestType*) data; // Object that manages the raw buffer. eprosima::fastcdr::FastBuffer fastbuffer((char*)payload->data, payload->length); //select the correct endianess eprosima::fastcdr::Cdr::Endianness endian = payload->encapsulation == CDR_LE ? eprosima::fastcdr::Cdr::LITTLE_ENDIANNESS : eprosima::fastcdr::Cdr::BIG_ENDIANNESS; // Object that deserializes the data. eprosima::fastcdr::Cdr deser(fastbuffer,endian); //deserialize the object: p_type->deserialize(deser); return true; }