#pragma once #include #include #include "fsfw/cfdp/VarLenFields.h" #include "fsfw/cfdp/tlv/FilestoreRequestTlv.h" #include "fsfw/cfdp/tlv/MessageToUserTlv.h" namespace cfdp { class PutRequest : public SerializeIF { public: EntityId destId; bool metadataOnly = true; char* destName = nullptr; uint64_t destNameSize = 0; char* sourceName = nullptr; uint64_t sourceNameSize = 0; TransmissionMode transmissionMode = TransmissionMode::UNACKNOWLEDGED; bool closureRequested = false; [[nodiscard]] ReturnValue_t serialize(uint8_t** buffer, size_t* size, size_t maxSize, Endianness streamEndianness) const override; ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size, Endianness streamEndianness) override; [[nodiscard]] size_t getSerializedSize() const override; [[nodiscard]] bool isMetadataOnly() const; private: size_t msgsToUsersTotalSize = 0; uint32_t numOfMsgsToUser = 0; uint8_t* messagesToUserStartPtr = nullptr; size_t fsRequestsTotalSize = 0; uint32_t numOfFsRequests = 0; uint8_t* fsRequest = nullptr; }; } // namespace cfdp