20 : m_id(id), m_priority(0), m_timeTag(), m_procTypes(0), m_dpState(), m_dataSize(0), m_buffer(), m_dataBuffer() {
22 this->initUserDataField();
29 : m_id(0), m_priority(0), m_timeTag(), m_procTypes(0), m_dataSize(0), m_buffer(), m_dataBuffer() {
31 this->initUserDataField();
50 status = serializeRepr.deserialize(packetDescriptor);
57 status = serializeRepr.deserialize(this->
m_id);
61 status = serializeRepr.deserialize(this->
m_priority);
65 status = serializeRepr.deserialize(this->
m_timeTag);
69 status = serializeRepr.deserialize(this->
m_procTypes);
76 if (receivedSize != requestedSize) {
82 status = serializeRepr.deserialize(this->
m_dpState);
86 status = serializeRepr.deserializeSize(this->
m_dataSize);
101 status = serializeRepr.serialize(this->
m_id);
104 status = serializeRepr.serialize(this->
m_priority);
107 status = serializeRepr.serialize(this->
m_timeTag);
110 status = serializeRepr.serialize(this->
m_procTypes);
113 status = serializeRepr.serialize(this->
m_userData, static_cast<FwSizeType>(
sizeof this->
m_userData),
117 status = serializeRepr.serialize(this->
m_dpState);
120 status = serializeRepr.serializeSize(this->
m_dataSize);
139 FW_ASSERT(bufferSize >= minBufferSize, static_cast<FwAssertArgType>(bufferSize),
140 static_cast<FwAssertArgType>(minBufferSize));
152 FW_ASSERT(bufferSize >= minBufferSize, static_cast<FwAssertArgType>(bufferSize),
153 static_cast<FwAssertArgType>(minBufferSize));
171 FW_ASSERT(bufferSize >= minBufferSize, static_cast<FwAssertArgType>(bufferSize),
172 static_cast<FwAssertArgType>(minBufferSize));
193 static_cast<FwAssertArgType>(bufferSize));
194 const U8*
const dataHashAddr = &buffAddr[dataHashOffset];
204 static_cast<FwAssertArgType>(bufferSize));
214 U8*
const dataHashAddr = &buffAddr[dataHashOffset];
217 static_cast<FwAssertArgType>(bufferSize));
238 void DpContainer::initUserDataField() {
Serialization/Deserialization operation was successful.
SerializeBufferBase & getSerializeRepr()
#define HASH_DIGEST_LENGTH
Header::UserData m_userData
The user data.
void setHeaderHash(const Utils::HashBuffer &hash)
Set the header hash.
void resetSer()
reset to beginning of buffer to reuse for serialization
SerializeStatus copyRaw(SerializeBufferBase &dest, Serializable::SizeType size)
directly copies buffer without looking for a size in the stream.
static constexpr FwSizeType MIN_PACKET_SIZE
Time m_timeTag
The time tag.
PlatformSizeType FwSizeType
void setDataHash(Utils::HashBuffer hash)
Set the data hash.
Fw::ExternalSerializeBufferWithMemberCopy m_dataBuffer
Utils::HashBuffer getHeaderHash() const
static constexpr FwSizeType HEADER_HASH_OFFSET
The header hash offset.
void setBuffer(const Buffer &buffer)
Set the packet buffer.
SerializeStatus
forward declaration for string
U32 FwPacketDescriptorType
FwSizeType m_dataSize
The data size.
FwDpPriorityType m_priority
The priority.
Data was the wrong format (e.g. wrong packet type)
void updateHeaderHash()
Compute and set the header hash.
Data was left in the buffer, but not enough to deserialize.
External serialize buffer with no copy semantics.
Utils::HashBuffer getDataHash() const
Utils::HashBuffer computeDataHash() const
DpState m_dpState
The data product state.
FwSizeType getDataHashOffset() const
Get the data hash offset.
Success::T checkDataHash(Utils::HashBuffer &storedHash, Utils::HashBuffer &computedHash) const
Check the data hash.
static constexpr FwSizeType DATA_OFFSET
The data offset.
uint8_t U8
8-bit unsigned integer
Utils::HashBuffer computeHeaderHash() const
static void hash(const void *data, const FwSizeType len, HashBuffer &buffer)
void updateDataHash()
Update the data hash.
void setExtBuffer(U8 *buffPtr, Serializable::SizeType size)
Omit length from serialization.
DpCfg::ProcType::SerialType m_procTypes
The processing types.
A container class for holding a hash buffer.
Success::T checkHeaderHash(Utils::HashBuffer &storedHash, Utils::HashBuffer &computedHash) const
Check the header hash.
Fw::SerializeStatus deserializeHeader()
FwSizeType getDataSize() const
Buffer m_buffer
The packet buffer.
SerializeStatus setBuffLen(Serializable::SizeType length)
sets buffer length manually after filling with data
DpContainer()
Constructor for container with default initialization.