fsfw/src/fsfw/timemanager/TimeReaderIF.h

40 lines
1.0 KiB
C
Raw Normal View History

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