#ifndef FSFW_CFDP_PDU_METADATAPDUCREATOR_H_ #define FSFW_CFDP_PDU_METADATAPDUCREATOR_H_ #include "fsfw/cfdp/pdu/FileDirectiveCreator.h" #include "fsfw/cfdp/pdu/MetadataGenericInfo.h" class MetadataPduCreator : public FileDirectiveCreator { public: MetadataPduCreator(PduConfig& conf, MetadataGenericInfo& info, cfdp::StringLv& srcFileName, cfdp::StringLv& destFileName, cfdp::Tlv** optionsArray, size_t optionsLen); void updateDirectiveFieldLen(); [[nodiscard]] size_t getSerializedSize() const override; const cfdp::StringLv& getSourceFileName() const; const cfdp::StringLv& getDestFileName() const; ReturnValue_t serialize(uint8_t** buffer, size_t* size, size_t maxSize, Endianness streamEndianness) const override; using FileDirectiveCreator::serialize; private: MetadataGenericInfo& info; cfdp::StringLv& srcFileName; cfdp::StringLv& destFileName; cfdp::Tlv** optionsArray; size_t optionsLen; }; #endif /* FSFW_CFDP_PDU_METADATAPDUCREATOR_H_ */