43 lines
679 B
C
43 lines
679 B
C
|
#pragma once
|
||
|
|
||
|
#include <cstdint>
|
||
|
|
||
|
#define NOMINMAX
|
||
|
#include <windows.h>
|
||
|
#undef NOMINMAX
|
||
|
|
||
|
#include "iClock.h"
|
||
|
|
||
|
|
||
|
namespace gj {
|
||
|
|
||
|
|
||
|
class TickingClock : public iClock {
|
||
|
public:
|
||
|
TickingClock() = delete;
|
||
|
TickingClock(TickingClock&&) = default;
|
||
|
TickingClock(const TickingClock&) = default;
|
||
|
|
||
|
TickingClock& operator=(TickingClock&&) = default;
|
||
|
TickingClock& operator=(const TickingClock&) = default;
|
||
|
|
||
|
TickingClock(const iClock* parent) : parent_(parent) {
|
||
|
Tick();
|
||
|
}
|
||
|
|
||
|
void Tick() {
|
||
|
now_ = parent_->now();
|
||
|
}
|
||
|
|
||
|
uint64_t now() const override {
|
||
|
return now_;
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
const iClock* parent_;
|
||
|
|
||
|
uint64_t now_;
|
||
|
};
|
||
|
|
||
|
|
||
|
}
|