2021-12-03 15:37:49 +01:00
|
|
|
#ifndef FSFW_SRC_FSFW_CFDP_PDU_FINISHINFO_H_
|
|
|
|
#define FSFW_SRC_FSFW_CFDP_PDU_FINISHINFO_H_
|
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
#include "../definitions.h"
|
2021-12-03 15:37:49 +01:00
|
|
|
#include "fsfw/cfdp/tlv/EntityIdTlv.h"
|
|
|
|
#include "fsfw/cfdp/tlv/FilestoreResponseTlv.h"
|
|
|
|
|
|
|
|
class FinishedInfo {
|
2022-02-02 10:29:30 +01:00
|
|
|
public:
|
|
|
|
FinishedInfo();
|
2022-09-15 18:41:15 +02:00
|
|
|
FinishedInfo(cfdp::ConditionCode conditionCode, cfdp::FileDeliveryCode deliveryCode,
|
2022-08-09 21:03:56 +02:00
|
|
|
cfdp::FileDeliveryStatus fileStatus);
|
2022-02-02 10:29:30 +01:00
|
|
|
|
2022-08-09 14:05:43 +02:00
|
|
|
[[nodiscard]] size_t getSerializedSize() const;
|
2022-02-02 10:29:30 +01:00
|
|
|
|
2022-08-09 14:05:43 +02:00
|
|
|
[[nodiscard]] bool hasFsResponses() const;
|
|
|
|
[[nodiscard]] bool canHoldFsResponses() const;
|
2022-02-02 10:29:30 +01:00
|
|
|
|
|
|
|
ReturnValue_t setFilestoreResponsesArray(FilestoreResponseTlv** fsResponses,
|
|
|
|
size_t* fsResponsesLen, const size_t* maxFsResponseLen);
|
|
|
|
void setFaultLocation(EntityIdTlv* entityId);
|
|
|
|
|
|
|
|
ReturnValue_t getFilestoreResonses(FilestoreResponseTlv*** fsResponses, size_t* fsResponsesLen,
|
|
|
|
size_t* fsResponsesMaxLen);
|
2022-08-09 14:05:43 +02:00
|
|
|
[[nodiscard]] size_t getFsResponsesLen() const;
|
2022-02-02 10:29:30 +01:00
|
|
|
void setFilestoreResponsesArrayLen(size_t fsResponsesLen);
|
|
|
|
ReturnValue_t getFaultLocation(EntityIdTlv** entityId);
|
2022-09-15 18:41:15 +02:00
|
|
|
[[nodiscard]] cfdp::ConditionCode getConditionCode() const;
|
|
|
|
void setConditionCode(cfdp::ConditionCode conditionCode);
|
2022-08-09 21:03:56 +02:00
|
|
|
[[nodiscard]] cfdp::FileDeliveryCode getDeliveryCode() const;
|
|
|
|
void setDeliveryCode(cfdp::FileDeliveryCode deliveryCode);
|
|
|
|
[[nodiscard]] cfdp::FileDeliveryStatus getFileStatus() const;
|
|
|
|
void setFileStatus(cfdp::FileDeliveryStatus fileStatus);
|
2022-02-02 10:29:30 +01:00
|
|
|
|
|
|
|
private:
|
2022-09-15 18:41:15 +02:00
|
|
|
cfdp::ConditionCode conditionCode = cfdp::ConditionCode::NO_CONDITION_FIELD;
|
2022-08-09 21:03:56 +02:00
|
|
|
cfdp::FileDeliveryCode deliveryCode = cfdp::FileDeliveryCode::DATA_COMPLETE;
|
|
|
|
cfdp::FileDeliveryStatus fileStatus = cfdp::FileDeliveryStatus::DISCARDED_DELIBERATELY;
|
2022-02-02 10:29:30 +01:00
|
|
|
FilestoreResponseTlv** fsResponses = nullptr;
|
|
|
|
size_t fsResponsesLen = 0;
|
|
|
|
size_t fsResponsesMaxLen = 0;
|
|
|
|
EntityIdTlv* faultLocation = nullptr;
|
2021-12-03 15:37:49 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* FSFW_SRC_FSFW_CFDP_PDU_FINISHINFO_H_ */
|