1
0
forked from fsfw/fsfw

internal housekeeping packet finished

This commit is contained in:
2020-08-08 21:32:15 +02:00
parent b828d7c6d7
commit b092850dfc
5 changed files with 171 additions and 3 deletions

View File

@ -30,6 +30,7 @@ class LocalDataPoolManager;
*
* @ingroup data_pool
*/
// todo: make withValidityBuffer a member
class LocalPoolDataSetBase: public PoolDataSetBase {
public:
/**
@ -63,6 +64,14 @@ public:
*/
~LocalPoolDataSetBase();
void setValidityBufferGeneration(bool withValidityBuffer);
ReturnValue_t serialize(uint8_t** buffer, size_t* size, size_t maxSize,
SerializeIF::Endianness streamEndianness) const override;
ReturnValue_t deSerialize(const uint8_t** buffer, size_t *size,
SerializeIF::Endianness streamEndianness) override;
size_t getSerializedSize() const override;
/**
* Special version of the serilization function which appends a
* validity buffer at the end. Each bit of this validity buffer
@ -78,7 +87,8 @@ public:
ReturnValue_t serializeWithValidityBuffer(uint8_t** buffer,
size_t* size, size_t maxSize,
SerializeIF::Endianness streamEndianness) const;
ReturnValue_t deSerializeWithValidityBuffer(const uint8_t** buffer,
size_t *size, SerializeIF::Endianness streamEndianness);
ReturnValue_t serializeLocalPoolIds(uint8_t** buffer,
size_t* size, size_t maxSize,
SerializeIF::Endianness streamEndianness) const;
@ -92,6 +102,8 @@ protected:
*/
bool valid = false;
bool withValidityBuffer = true;
/**
* @brief This is a small helper function to facilitate locking
* the global data pool.
@ -114,7 +126,7 @@ protected:
* (most significant bit) to 7 (least significant bit)
*/
void bitSetter(uint8_t* byte, uint8_t position) const;
bool bitGetter(const uint8_t* byte, uint8_t position) const;
private: