84 lines
2.1 KiB
C++
84 lines
2.1 KiB
C++
#include "NakInfo.h"
|
|
|
|
NakInfo::NakInfo(cfdp::FileSize startOfScope, cfdp::FileSize endOfScope):
|
|
startOfScope(startOfScope), endOfScope(endOfScope) {
|
|
}
|
|
|
|
size_t NakInfo::getSerializedSize(bool fssLarge) {
|
|
size_t size = 8;
|
|
if(fssLarge) {
|
|
size += 8;
|
|
}
|
|
if(hasSegmentRequests()) {
|
|
if(fssLarge) {
|
|
size += segmentRequestsLen * 16;
|
|
} else {
|
|
size += segmentRequestsLen * 8;
|
|
}
|
|
}
|
|
return size;
|
|
}
|
|
|
|
bool NakInfo::hasSegmentRequests() const {
|
|
if(this->segmentRequests != nullptr and segmentRequestsLen > 0) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool NakInfo::canHoldSegmentRequests() const {
|
|
if(this->segmentRequests != nullptr and maxSegmentRequestsLen > 0) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool NakInfo::getSegmentRequests(SegmentRequest **segmentRequestPtr,
|
|
size_t *segmentRequestLen, size_t* maxSegmentRequestsLen) {
|
|
if(this->segmentRequests != nullptr) {
|
|
*segmentRequestPtr = this->segmentRequests;
|
|
}
|
|
if(segmentRequestLen != nullptr) {
|
|
*segmentRequestLen = this->segmentRequestsLen;
|
|
}
|
|
if(maxSegmentRequestsLen != nullptr) {
|
|
*maxSegmentRequestsLen = this->maxSegmentRequestsLen;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
void NakInfo::setSegmentRequests(SegmentRequest *segmentRequests, size_t* segmentRequestLen,
|
|
size_t* maxSegmentRequestLen) {
|
|
this->segmentRequests = segmentRequests;
|
|
if(segmentRequestLen != nullptr) {
|
|
this->segmentRequestsLen = *segmentRequestLen;
|
|
}
|
|
if(maxSegmentRequestLen != nullptr) {
|
|
this->maxSegmentRequestsLen = *maxSegmentRequestLen;
|
|
}
|
|
}
|
|
|
|
cfdp::FileSize& NakInfo::getStartOfScope() {
|
|
return startOfScope;
|
|
}
|
|
|
|
cfdp::FileSize& NakInfo::getEndOfScope() {
|
|
return endOfScope;
|
|
}
|
|
|
|
size_t NakInfo::getSegmentRequestsLen() const {
|
|
return segmentRequestsLen;
|
|
}
|
|
|
|
size_t NakInfo::getSegmentRequestsMaxLen() const {
|
|
return maxSegmentRequestsLen;
|
|
}
|
|
|
|
void NakInfo::setSegmentRequestLen(size_t readLen) {
|
|
this->segmentRequestsLen = readLen;
|
|
}
|
|
|
|
void NakInfo::setMaxSegmentRequestLen(size_t maxSize) {
|
|
this->maxSegmentRequestsLen = maxSize;
|
|
}
|