#include "ReservedMessageCreator.h" cfdp::ReservedMessageCreator::ReservedMessageCreator(uint8_t messageType, uint8_t *msgData, size_t msgLen) : messageType(messageType), msgData(msgData), msgSize(msgLen) {} ReturnValue_t cfdp::ReservedMessageCreator::serialize( uint8_t **buffer, size_t *size, size_t maxSize, SerializeIF::Endianness streamEndianness) const { if (*size + getSerializedSize() > maxSize) { return SerializeIF::BUFFER_TOO_SHORT; } **buffer = TlvType::MSG_TO_USER; *buffer += 1; *size += 1; **buffer = getSerializedSize() - 2; *size += 1; *buffer += 1; std::memcpy(*buffer, MSG_HEADER, 4); *buffer += 4; *size += 4; **buffer = messageType; *buffer += 1; *size += 1; std::memcpy(*buffer, msgData, msgSize); *buffer += msgSize; *size += msgSize; return returnvalue::OK; } size_t cfdp::ReservedMessageCreator::getSerializedSize() const { // 2 bytes type and length, 4 bytes CFDP, 1 byte reserved message type, message data. return 2 + 5 + msgSize; } ReturnValue_t cfdp::ReservedMessageCreator::deSerialize(const uint8_t **buffer, size_t *size, SerializeIF::Endianness streamEndianness) { return returnvalue::FAILED; }