2021-12-03 15:37:49 +01:00
|
|
|
#ifndef FSFW_SRC_FSFW_CFDP_PDU_METADATAINFO_H_
|
|
|
|
#define FSFW_SRC_FSFW_CFDP_PDU_METADATAINFO_H_
|
|
|
|
|
|
|
|
#include "fsfw/cfdp/FileSize.h"
|
|
|
|
#include "fsfw/cfdp/definitions.h"
|
2022-02-02 10:29:30 +01:00
|
|
|
#include "fsfw/cfdp/tlv/Lv.h"
|
|
|
|
#include "fsfw/cfdp/tlv/Tlv.h"
|
2021-12-03 15:37:49 +01:00
|
|
|
|
|
|
|
class MetadataInfo {
|
2022-02-02 10:29:30 +01:00
|
|
|
public:
|
|
|
|
MetadataInfo(bool closureRequested, cfdp::ChecksumType checksumType, cfdp::FileSize& fileSize,
|
|
|
|
cfdp::Lv& sourceFileName, cfdp::Lv& destFileName);
|
|
|
|
|
|
|
|
size_t getSerializedSize(bool fssLarge = false);
|
|
|
|
|
|
|
|
void setOptionsArray(cfdp::Tlv** optionsArray, size_t* optionsLen, size_t* maxOptionsLen);
|
|
|
|
cfdp::ChecksumType getChecksumType() const;
|
|
|
|
void setChecksumType(cfdp::ChecksumType checksumType);
|
|
|
|
bool isClosureRequested() const;
|
|
|
|
void setClosureRequested(bool closureRequested = false);
|
|
|
|
|
|
|
|
void setDestFileName(cfdp::Lv& destFileName);
|
|
|
|
void setSourceFileName(cfdp::Lv& sourceFileName);
|
|
|
|
|
|
|
|
cfdp::Lv& getDestFileName();
|
|
|
|
cfdp::Lv& getSourceFileName();
|
|
|
|
cfdp::FileSize& getFileSize();
|
|
|
|
|
|
|
|
bool hasOptions() const;
|
|
|
|
bool canHoldOptions() const;
|
|
|
|
ReturnValue_t getOptions(cfdp::Tlv*** optionsArray, size_t* optionsLen, size_t* maxOptsLen);
|
|
|
|
void setOptionsLen(size_t optionsLen);
|
|
|
|
size_t getOptionsLen() const;
|
|
|
|
void setMaxOptionsLen(size_t maxOptionsLen);
|
|
|
|
size_t getMaxOptionsLen() const;
|
|
|
|
|
|
|
|
private:
|
|
|
|
bool closureRequested = false;
|
|
|
|
cfdp::ChecksumType checksumType;
|
|
|
|
cfdp::FileSize& fileSize;
|
|
|
|
cfdp::Lv& sourceFileName;
|
|
|
|
cfdp::Lv& destFileName;
|
|
|
|
|
|
|
|
cfdp::Tlv** optionsArray = nullptr;
|
|
|
|
size_t optionsLen = 0;
|
|
|
|
size_t maxOptionsLen = 0;
|
2021-12-03 15:37:49 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* FSFW_SRC_FSFW_CFDP_PDU_METADATAINFO_H_ */
|