2022-07-21 11:34:11 +02:00
|
|
|
#ifndef FSFW_TIMEMANAGER_TIMEREADERIF_H
|
|
|
|
#define FSFW_TIMEMANAGER_TIMEREADERIF_H
|
|
|
|
|
|
|
|
#include <cstdlib>
|
2022-09-29 16:46:55 +02:00
|
|
|
|
2022-09-27 21:46:11 +02:00
|
|
|
#include "fsfw/platform.h"
|
|
|
|
|
|
|
|
#ifdef PLATFORM_WIN
|
|
|
|
// wtf? Required for timeval!
|
|
|
|
#include <winsock.h>
|
|
|
|
#endif
|
2022-07-21 11:34:11 +02:00
|
|
|
|
2022-07-27 17:33:39 +02:00
|
|
|
#include "TimeStampIF.h"
|
2022-08-22 16:23:36 +02:00
|
|
|
#include "fsfw/returnvalues/returnvalue.h"
|
2022-09-05 14:44:35 +02:00
|
|
|
#include "fsfw/serialize/SerializeIF.h"
|
2022-07-21 11:34:11 +02:00
|
|
|
|
2022-09-05 14:44:35 +02:00
|
|
|
class TimeReaderIF : public SerializeIF, public TimeStampIF {
|
2022-07-21 11:34:11 +02:00
|
|
|
public:
|
2022-07-27 17:33:39 +02:00
|
|
|
~TimeReaderIF() override = default;
|
2022-07-21 11:34:11 +02:00
|
|
|
virtual timeval& getTime() = 0;
|
2022-09-05 14:44:35 +02:00
|
|
|
|
|
|
|
[[nodiscard]] size_t getSerializedSize() const override { return getTimestampSize(); }
|
|
|
|
|
|
|
|
ReturnValue_t readTimeStamp(const uint8_t* buf, size_t maxSize) {
|
|
|
|
size_t dummy = 0;
|
|
|
|
return deSerialize(buf, dummy, maxSize, SerializeIF::Endianness::NETWORK);
|
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
|
|
/**
|
|
|
|
* Forbidden, use dedicated IF @TimeWriterIF
|
|
|
|
*/
|
|
|
|
[[nodiscard]] ReturnValue_t serialize(uint8_t** buffer, size_t* size, size_t maxSize,
|
|
|
|
Endianness streamEndianness) const override {
|
|
|
|
return returnvalue::FAILED;
|
|
|
|
}
|
2022-07-21 11:34:11 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // FSFW_TIMEMANAGER_TIMEREADERIF_H
|