116 lines
3.0 KiB
C++
116 lines
3.0 KiB
C++
|
#include "MetadataInfo.h"
|
||
|
|
||
|
MetadataInfo::MetadataInfo(bool closureRequested, cfdp::ChecksumType checksumType,
|
||
|
cfdp::FileSize& fileSize, cfdp::Lv& sourceFileName, cfdp::Lv& destFileName):
|
||
|
closureRequested(closureRequested), checksumType(checksumType), fileSize(fileSize),
|
||
|
sourceFileName(sourceFileName), destFileName(destFileName) {
|
||
|
}
|
||
|
|
||
|
void MetadataInfo::setOptionsArray(cfdp::Tlv** optionsArray, size_t* optionsLen,
|
||
|
size_t* maxOptionsLen) {
|
||
|
this->optionsArray = optionsArray;
|
||
|
if(maxOptionsLen != nullptr) {
|
||
|
this->maxOptionsLen = *maxOptionsLen;
|
||
|
}
|
||
|
if(optionsLen != nullptr) {
|
||
|
this->optionsLen = *optionsLen;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
cfdp::ChecksumType MetadataInfo::getChecksumType() const {
|
||
|
return checksumType;
|
||
|
}
|
||
|
|
||
|
void MetadataInfo::setChecksumType(cfdp::ChecksumType checksumType) {
|
||
|
this->checksumType = checksumType;
|
||
|
}
|
||
|
|
||
|
bool MetadataInfo::isClosureRequested() const {
|
||
|
return closureRequested;
|
||
|
}
|
||
|
|
||
|
void MetadataInfo::setClosureRequested(bool closureRequested) {
|
||
|
this->closureRequested = closureRequested;
|
||
|
}
|
||
|
|
||
|
cfdp::Lv& MetadataInfo::getDestFileName() {
|
||
|
return destFileName;
|
||
|
}
|
||
|
|
||
|
cfdp::FileSize& MetadataInfo::getFileSize() {
|
||
|
return fileSize;
|
||
|
}
|
||
|
|
||
|
ReturnValue_t MetadataInfo::getOptions(cfdp::Tlv*** optionsArray, size_t *optionsLen,
|
||
|
size_t* maxOptsLen) {
|
||
|
if(optionsArray == nullptr or this->optionsArray == nullptr) {
|
||
|
return HasReturnvaluesIF::RETURN_FAILED;
|
||
|
}
|
||
|
*optionsArray = this->optionsArray;
|
||
|
if(optionsLen != nullptr) {
|
||
|
*optionsLen = this->optionsLen;
|
||
|
}
|
||
|
if(maxOptsLen != nullptr) {
|
||
|
*maxOptsLen = this->maxOptionsLen;
|
||
|
}
|
||
|
return HasReturnvaluesIF::RETURN_OK;
|
||
|
}
|
||
|
|
||
|
bool MetadataInfo::hasOptions() const {
|
||
|
if (optionsArray != nullptr and optionsLen > 0) {
|
||
|
return true;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
bool MetadataInfo::canHoldOptions() const {
|
||
|
if (optionsArray != nullptr and maxOptionsLen > 0) {
|
||
|
return true;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
size_t MetadataInfo::getSerializedSize(bool fssLarge) {
|
||
|
// 1 byte + minimal FSS 4 bytes
|
||
|
size_t size = 5;
|
||
|
if(fssLarge) {
|
||
|
size += 4;
|
||
|
}
|
||
|
size += sourceFileName.getSerializedSize();
|
||
|
size += destFileName.getSerializedSize();
|
||
|
if(hasOptions()) {
|
||
|
for(size_t idx = 0; idx < optionsLen; idx++) {
|
||
|
size += optionsArray[idx]->getSerializedSize();
|
||
|
}
|
||
|
}
|
||
|
return size;
|
||
|
}
|
||
|
|
||
|
void MetadataInfo::setDestFileName(cfdp::Lv &destFileName) {
|
||
|
this->destFileName = destFileName;
|
||
|
}
|
||
|
|
||
|
void MetadataInfo::setSourceFileName(cfdp::Lv &sourceFileName) {
|
||
|
this->sourceFileName = sourceFileName;
|
||
|
}
|
||
|
|
||
|
size_t MetadataInfo::getMaxOptionsLen() const {
|
||
|
return maxOptionsLen;
|
||
|
}
|
||
|
|
||
|
void MetadataInfo::setMaxOptionsLen(size_t maxOptionsLen) {
|
||
|
this->maxOptionsLen = maxOptionsLen;
|
||
|
}
|
||
|
|
||
|
size_t MetadataInfo::getOptionsLen() const {
|
||
|
return optionsLen;
|
||
|
}
|
||
|
|
||
|
void MetadataInfo::setOptionsLen(size_t optionsLen) {
|
||
|
this->optionsLen = optionsLen;
|
||
|
}
|
||
|
|
||
|
cfdp::Lv& MetadataInfo::getSourceFileName() {
|
||
|
return sourceFileName;
|
||
|
}
|