parsing finally works

This commit is contained in:
Robin Müller 2023-07-26 16:25:42 +02:00
parent 314cba363f
commit 8f5a8b13d3
Signed by: muellerr
GPG Key ID: 407F9B00F858F270
1 changed files with 8 additions and 5 deletions

View File

@ -17,13 +17,16 @@ cfdp::PutRequest::PutRequest(cfdp::EntityId destId, const uint8_t *msgsToUser,
ReturnValue_t cfdp::PutRequest::serialize(uint8_t **buffer, size_t *size, size_t maxSize, ReturnValue_t cfdp::PutRequest::serialize(uint8_t **buffer, size_t *size, size_t maxSize,
SerializeIF::Endianness streamEndianness) const { SerializeIF::Endianness streamEndianness) const {
ReturnValue_t result = destId.serialize(buffer, size, maxSize, streamEndianness); if(buffer == nullptr or size == nullptr) {
if (result != OK) { return FAILED;
return result;
} }
if (*size + getSerializedSize() > maxSize) { if (*size + getSerializedSize() > maxSize) {
return SerializeIF::BUFFER_TOO_SHORT; return SerializeIF::BUFFER_TOO_SHORT;
} }
ReturnValue_t result = destId.serialize(buffer, size, maxSize, streamEndianness);
if (result != OK) {
return result;
}
result = SerializeAdapter::serialize(&metadataOnly, buffer, size, maxSize, streamEndianness); result = SerializeAdapter::serialize(&metadataOnly, buffer, size, maxSize, streamEndianness);
if (result != OK) { if (result != OK) {
return result; return result;
@ -152,7 +155,7 @@ ReturnValue_t cfdp::PutRequest::deSerialize(const uint8_t **buffer, size_t *size
} }
size_t cfdp::PutRequest::getSerializedSize() const { size_t cfdp::PutRequest::getSerializedSize() const {
size_t baseSize = destId.getSerializedSize() + 1; size_t baseSize = 1 + destId.getSerializedSize();
if (!metadataOnly) { if (!metadataOnly) {
baseSize += sizeof(sourceNameSize) + sourceNameSize + sizeof(destNameSize) + destNameSize + 2; baseSize += sizeof(sourceNameSize) + sourceNameSize + sizeof(destNameSize) + destNameSize + 2;
} }
@ -164,5 +167,5 @@ size_t cfdp::PutRequest::getSerializedSize() const {
void cfdp::PutRequest::setSourceAndDestName(cfdp::StringLv &sourceName_, void cfdp::PutRequest::setSourceAndDestName(cfdp::StringLv &sourceName_,
cfdp::StringLv &destName_) { cfdp::StringLv &destName_) {
this->sourceName = sourceName_.getString(sourceNameSize); this->sourceName = sourceName_.getString(sourceNameSize);
this->destName = destName_.getString(sourceNameSize); this->destName = destName_.getString(destNameSize);
} }