xref: /TaskScheduler/Scheduler/Include/MTTools.h (revision 47d53e4d)
1 #pragma once
2 #include <MTTypes.h>
3 #include <MTPlatform.h>
4 
5 #define UNUSED(T)
6 
7 template<class T>
8 T Min(T a, T b)
9 {
10     return a < b ? a : b;
11 }
12 
13 template<class T>
14 T Max(T a, T b)
15 {
16     return a < b ? b : a;
17 }
18 
19 template<class T>
20 T Clamp(T val, T min, T max)
21 {
22     return Min(max, Max(min, val));
23 }
24 
25 namespace MT
26 {
27 	class Timer
28 	{
29 		uint64 startMicroSeconds;
30 	public:
31 		Timer() : startMicroSeconds(MT::GetTimeMicroSeconds())
32 		{
33 		}
34 
35 		uint32 GetPastMicroSeconds() const
36 		{
37 			return (uint32)(MT::GetTimeMicroSeconds() - startMicroSeconds);
38 		}
39 
40 		uint32 GetPastMilliSeconds() const
41 		{
42 			return (uint32)((MT::GetTimeMicroSeconds() - startMicroSeconds) / 1000);
43 		}
44 	};
45 }
46 
47