fsfw/src/fsfw/cfdp/handler/PutRequest.h

33 lines
1.0 KiB
C++

#pragma once
#include <optional>
#include <vector>
#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;
std::optional<TransmissionMode> transmissionMode;
char destName[524]{};
std::optional<size_t> destNameSize;
char sourceName[524]{};
std::optional<size_t> sourceNameSize;
std::optional<bool> closureRequested;
std::vector<MessageToUserTlv> messagesToUser;
std::vector<FilestoreRequestTlv> fsRequest;
[[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;
};
} // namespace cfdp