Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
Clock.hxx
Go to the documentation of this file.
1
35#include "os/os.h"
36
46class Clock
47{
48public:
50 virtual long long get_time_nsec() = 0;
51};
52
54class RealClock : public Clock
55{
56public:
57 long long get_time_nsec()
58 {
59 return os_get_time_monotonic();
60 }
61};
62
66class MockClock : public Clock
67{
68public:
70 MockClock(long long time) : time_(time)
71 {
72 }
74 long long get_time_nsec()
75 {
76 return time_;
77 }
79 void set_time(long long time)
80 {
81 time_ = time;
82 }
83private:
85 long long time_;
86};
Virtual base class for a real-time clock.
Definition Clock.hxx:47
virtual long long get_time_nsec()=0
Fake implementation of Clock that returns an injected time.
Definition Clock.hxx:67
MockClock(long long time)
Consturctor.
Definition Clock.hxx:70
void set_time(long long time)
Definition Clock.hxx:79
long long time_
Current mock time.
Definition Clock.hxx:85
long long get_time_nsec()
Definition Clock.hxx:74
Implementation of Clock that returns the current real time form the OS.
Definition Clock.hxx:55
long long get_time_nsec()
Definition Clock.hxx:57
long long os_get_time_monotonic(void)
Get the monotonic time since the system started.
Definition os.c:571