2021-12-03 15:37:49 +01:00
|
|
|
#ifndef FSFW_SRC_FSFW_CFDP_PDU_NAKINFO_H_
|
|
|
|
#define FSFW_SRC_FSFW_CFDP_PDU_NAKINFO_H_
|
|
|
|
|
|
|
|
#include <utility>
|
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
#include "fsfw/cfdp/FileSize.h"
|
|
|
|
|
2021-12-03 15:37:49 +01:00
|
|
|
class NakInfo {
|
2022-02-02 10:29:30 +01:00
|
|
|
public:
|
|
|
|
using SegmentRequest = std::pair<cfdp::FileSize, cfdp::FileSize>;
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
NakInfo(cfdp::FileSize startOfScope, cfdp::FileSize endOfScope);
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
void setSegmentRequests(SegmentRequest* segmentRequests, size_t* segmentRequestLen,
|
|
|
|
size_t* maxSegmentRequestLen);
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
size_t getSerializedSize(bool fssLarge = false);
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
cfdp::FileSize& getStartOfScope();
|
|
|
|
cfdp::FileSize& getEndOfScope();
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
bool hasSegmentRequests() const;
|
|
|
|
bool canHoldSegmentRequests() const;
|
|
|
|
void setMaxSegmentRequestLen(size_t maxSize);
|
|
|
|
bool getSegmentRequests(SegmentRequest** segmentRequestPtr, size_t* segmentRequestLen,
|
|
|
|
size_t* maxSegmentRequestsLen);
|
|
|
|
size_t getSegmentRequestsLen() const;
|
|
|
|
size_t getSegmentRequestsMaxLen() const;
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
//! This functions is more relevant for deserializers
|
|
|
|
void setSegmentRequestLen(size_t readLen);
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
private:
|
|
|
|
cfdp::FileSize startOfScope;
|
|
|
|
cfdp::FileSize endOfScope;
|
|
|
|
SegmentRequest* segmentRequests = nullptr;
|
|
|
|
size_t segmentRequestsLen = 0;
|
|
|
|
size_t maxSegmentRequestsLen = 0;
|
2021-12-03 15:37:49 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* FSFW_SRC_FSFW_CFDP_PDU_NAKINFO_H_ */
|