9 #include <config/CfdpCfg.hpp> 26 this->m_offset = offset;
27 this->m_dataSize = dataSize;
36 size +=
static_cast<U32
>(
sizeof(
U64));
38 size +=
static_cast<U32
>(
sizeof(U32));
41 size += this->m_dataSize;
50 size +=
static_cast<U32
>(
sizeof(
U64));
52 size +=
static_cast<U32
>(
sizeof(U32));
62 buffer.
setSize(serialBuffer.getSize());
69 Fw::SerialBuffer serialBuffer(const_cast<Fw::Buffer&>(buffer).
getData(), const_cast<Fw::Buffer&>(buffer).getSize());
87 return this->fromSerialBuffer(serialBuffer);
109 U64 offset64 = this->m_offset;
113 U32 offset32 =
static_cast<U32
>(this->m_offset);
121 if (this->m_dataSize > 0) {
122 status = serialBuffer.
pushBytes(this->m_data, this->m_dataSize);
141 offsetSize =
sizeof(this->m_offset);
147 if (pduDataLength < offsetSize) {
151 this->m_dataSize =
static_cast<U16
>(pduDataLength - offsetSize);
163 for (U16 i = 0; i < this->m_dataSize; ++i) {
164 status = serialBuffer.
popBytes(tempBuf, 1);
176 return this->toSerialBuffer(*serialBuffer);
190 return this->fromSerialBuffer(*serialBuffer);
Fw::SerializeStatus toBuffer(Fw::Buffer &buffer) const
Convert this FileDataPdu to a Buffer.
U32 getBufferSize() const override
Compute the buffer size needed.
Serialization/Deserialization operation was successful.
A variable-length serializable buffer.
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
void setSize(FwSizeType size)
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) override
Fw::Serializable interface - deserialize from buffer.
const U8 * getBuffAddrLeft() const
Get address of remaining non-deserialized data.
U32 EntityId
Entity id size.
void fill()
Fill the buffer to capacity with preexisting data.
SerializeStatus
forward declaration for string
U32 TransactionSeq
transaction sequence number size
SerializeStatus popBytes(U8 *const addr, FwSizeType n)
Pop n bytes off the buffer.
Data was left in the buffer, but not enough to deserialize.
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
Fw::SerializeStatus fromBuffer(const Fw::Buffer &buffer)
Initialize this FileDataPdu from a Buffer.
SerializeStatus pushBytes(const U8 *const addr, const FwSizeType n)
Push n bytes onto the buffer.
Deserialized type ID didn't match.
PduHeader m_header
The PDU header (common to all PDUs)
U32 FileSize
File size and offset type.
uint8_t U8
8-bit unsigned integer
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const override
Fw::Serializable interface - serialize to buffer.
const U8 * getData() const
Get the data pointer.
FwSizeType getSize() const
RateGroupDivider component implementation.
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
void initialize(PduDirection direction, Cfdp::Class::T txmMode, EntityId sourceEid, TransactionSeq transactionSeq, EntityId destEid, FileSize offset, U16 dataSize, const U8 *data)
Initialize a File Data PDU.