35 lines
1.1 KiB
C
35 lines
1.1 KiB
C
|
#ifndef FSFW_TIMEMANAGER_TIMESTAMPERIF_H_
|
||
|
#define FSFW_TIMEMANAGER_TIMESTAMPERIF_H_
|
||
|
|
||
|
#include "TimeStampIF.h"
|
||
|
#include "fsfw/returnvalues/returnvalue.h"
|
||
|
#include "fsfw/serialize/SerializeIF.h"
|
||
|
|
||
|
/**
|
||
|
* A class implementing this IF provides facilities to add a time stamp to the
|
||
|
* buffer provided.
|
||
|
* Implementors need to ensure that calling the method is thread-safe, i.e.
|
||
|
* addTimeStamp may be called in parallel from a different context.
|
||
|
*/
|
||
|
class TimeWriterIF : public SerializeIF, public TimeStampIF {
|
||
|
public:
|
||
|
~TimeWriterIF() override = default;
|
||
|
[[nodiscard]] size_t getTimestampSize() const override { return getSerializedSize(); }
|
||
|
|
||
|
ReturnValue_t addTimeStamp(uint8_t *buf, size_t maxSize) {
|
||
|
size_t dummy = 0;
|
||
|
return serialize(buf, dummy, maxSize, SerializeIF::Endianness::NETWORK);
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
/**
|
||
|
* Forbidden, use dedicated IF @TimeReaderIF
|
||
|
*/
|
||
|
ReturnValue_t deSerialize(const uint8_t **buffer, size_t *size,
|
||
|
Endianness streamEndianness) override {
|
||
|
return returnvalue::FAILED;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
#endif /* FSFW_TIMEMANAGER_TIMESTAMPERIF_H_ */
|