#ifndef FSFW_SRC_FSFW_CFDP_PDU_NAKINFO_H_ #define FSFW_SRC_FSFW_CFDP_PDU_NAKINFO_H_ #include #include "fsfw/cfdp/Fss.h" class NakInfo { public: using SegmentRequest = std::pair; NakInfo(cfdp::Fss startOfScope, cfdp::Fss endOfScope); void setSegmentRequests(SegmentRequest* segmentRequests, size_t* segmentRequestLen, size_t* maxSegmentRequestLen); size_t getSerializedSize(bool fssLarge = false); cfdp::Fss& getStartOfScope(); cfdp::Fss& getEndOfScope(); 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; //! This functions is more relevant for deserializers void setSegmentRequestLen(size_t readLen); private: cfdp::Fss startOfScope; cfdp::Fss endOfScope; SegmentRequest* segmentRequests = nullptr; size_t segmentRequestsLen = 0; size_t maxSegmentRequestsLen = 0; }; #endif /* FSFW_SRC_FSFW_CFDP_PDU_NAKINFO_H_ */