This repository has been archived on 2022-05-21. You can view files and clone it, but cannot push or open issues or pull requests.
glyphs-juke/OffsetClock.h

38 lines
688 B
C++

#pragma once
#include <cstdint>
#define NOMINMAX
#include <windows.h>
#undef NOMINMAX
#include "iClock.h"
namespace gj {
class OffsetClock : public iClock {
public:
OffsetClock(OffsetClock&&) = default;
OffsetClock(const OffsetClock&) = default;
OffsetClock& operator=(OffsetClock&&) = default;
OffsetClock& operator=(const OffsetClock&) = default;
OffsetClock(const iClock* parent, uint64_t offset) :
parent_(parent), offset_(offset) {
}
OffsetClock(const iClock* parent) : OffsetClock(parent, parent->now()) {
}
uint64_t now() const override {
return parent_->now() - offset_;
}
private:
const iClock* parent_;
uint64_t offset_;
};
}