#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 returnvalue::FAILED; } *optionsArray = this->optionsArray; if (optionsLen != nullptr) { *optionsLen = this->optionsLen; } if (maxOptsLen != nullptr) { *maxOptsLen = this->maxOptionsLen; } return returnvalue::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; }