summaryrefslogtreecommitdiff
path: root/src/common/wall_clock.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/wall_clock.h')
-rw-r--r--src/common/wall_clock.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/common/wall_clock.h b/src/common/wall_clock.h
index 6f763d74b..fc34429bb 100644
--- a/src/common/wall_clock.h
+++ b/src/common/wall_clock.h
@@ -5,6 +5,7 @@
5#pragma once 5#pragma once
6 6
7#include <chrono> 7#include <chrono>
8#include <memory>
8 9
9#include "common/common_types.h" 10#include "common/common_types.h"
10 11
@@ -12,10 +13,20 @@ namespace Common {
12 13
13class WallClock { 14class WallClock {
14public: 15public:
16
17 /// Returns current wall time in nanoseconds
15 virtual std::chrono::nanoseconds GetTimeNS() = 0; 18 virtual std::chrono::nanoseconds GetTimeNS() = 0;
19
20 /// Returns current wall time in microseconds
16 virtual std::chrono::microseconds GetTimeUS() = 0; 21 virtual std::chrono::microseconds GetTimeUS() = 0;
22
23 /// Returns current wall time in milliseconds
17 virtual std::chrono::milliseconds GetTimeMS() = 0; 24 virtual std::chrono::milliseconds GetTimeMS() = 0;
25
26 /// Returns current wall time in emulated clock cycles
18 virtual u64 GetClockCycles() = 0; 27 virtual u64 GetClockCycles() = 0;
28
29 /// Returns current wall time in emulated cpu cycles
19 virtual u64 GetCPUCycles() = 0; 30 virtual u64 GetCPUCycles() = 0;
20 31
21 /// Tells if the wall clock, uses the host CPU's hardware clock 32 /// Tells if the wall clock, uses the host CPU's hardware clock
@@ -35,6 +46,6 @@ private:
35 bool is_native; 46 bool is_native;
36}; 47};
37 48
38WallClock* CreateBestMatchingClock(u32 emulated_cpu_frequency, u32 emulated_clock_frequency); 49std::unique_ptr<WallClock> CreateBestMatchingClock(u32 emulated_cpu_frequency, u32 emulated_clock_frequency);
39 50
40} // namespace Common 51} // namespace Common