24 this->m_scopeStart = scopeStart;
25 this->m_scopeEnd = scopeEnd;
26 this->m_numSegments = 0;
33 this->m_segments[this->m_numSegments].
offsetStart = offsetStart;
34 this->m_segments[this->m_numSegments].
offsetEnd = offsetEnd;
35 this->m_numSegments++;
40 this->m_numSegments = 0;
51 size +=
static_cast<U32
>(this->m_numSegments * (
sizeof(
FileSize) +
sizeof(
FileSize)));
57 return this->toSerialBuffer(buffer);
86 return this->fromSerialBuffer(buffer);
125 for (
U8 i = 0; i < this->m_numSegments; i++) {
127 status = serialBuffer.
serializeFrom(this->m_segments[i].offsetStart);
133 status = serialBuffer.
serializeFrom(this->m_segments[i].offsetEnd);
163 U32 numSegsCalculated =
static_cast<U32
>(remainingBytes / segmentSize);
164 this->m_numSegments =
static_cast<U8>(numSegsCalculated);
172 for (
U8 i = 0; i < this->m_numSegments; i++) {
174 status = serialBuffer.
deserializeTo(this->m_segments[i].offsetStart);
180 status = serialBuffer.
deserializeTo(this->m_segments[i].offsetEnd);
Serialization/Deserialization operation was successful.
Negative Acknowledgment PDU.
U32 EntityId
Entity id size.
virtual SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG)=0
Serialize an 8-bit unsigned integer value.
SerializeStatus
forward declaration for string
virtual SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)=0
Deserialize an 8-bit unsigned integer value.
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const override
Fw::Serializable interface - serialize to buffer.
U32 TransactionSeq
transaction sequence number size
FileSize offsetEnd
End offset of missing data.
Deserialized type ID didn't match.
PduHeader m_header
The PDU header (common to all PDUs)
void initialize(PduDirection direction, Cfdp::Class::T txmMode, EntityId sourceEid, TransactionSeq transactionSeq, EntityId destEid, FileSize scopeStart, FileSize scopeEnd)
Initialize a NAK PDU.
bool addSegment(FileSize offsetStart, FileSize offsetEnd)
U32 FileSize
File size and offset type.
virtual Serializable::SizeType getDeserializeSizeLeft() const =0
Get remaining deserialization buffer size.
uint8_t U8
8-bit unsigned integer
FileSize offsetStart
Start offset of missing data.
void clearSegments()
Clear all segment requests.
RateGroupDivider component implementation.
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) override
Fw::Serializable interface - deserialize from buffer.
U32 getBufferSize() const override
Compute the buffer size needed.