Mercurial > fife-parpg
comparison ext/UnitTest++/src/Win32/TimeHelpers.cpp @ 37:0d325e9d5953
added unittest++ files into ext. Not hooked into build scripts yet
author | jasoka@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Sat, 12 Jul 2008 12:00:57 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
36:6f1227f4932b | 37:0d325e9d5953 |
---|---|
1 #include "TimeHelpers.h" | |
2 #include <windows.h> | |
3 | |
4 namespace UnitTest { | |
5 | |
6 Timer::Timer() | |
7 : m_startTime(0) | |
8 { | |
9 m_threadId = ::GetCurrentThread(); | |
10 DWORD_PTR systemMask; | |
11 ::GetProcessAffinityMask(GetCurrentProcess(), &m_processAffinityMask, &systemMask); | |
12 | |
13 ::SetThreadAffinityMask(m_threadId, 1); | |
14 ::QueryPerformanceFrequency(reinterpret_cast< LARGE_INTEGER* >(&m_frequency)); | |
15 ::SetThreadAffinityMask(m_threadId, m_processAffinityMask); | |
16 } | |
17 | |
18 void Timer::Start() | |
19 { | |
20 m_startTime = GetTime(); | |
21 } | |
22 | |
23 int Timer::GetTimeInMs() const | |
24 { | |
25 __int64 const elapsedTime = GetTime() - m_startTime; | |
26 double const seconds = double(elapsedTime) / double(m_frequency); | |
27 return int(seconds * 1000.0f); | |
28 } | |
29 | |
30 __int64 Timer::GetTime() const | |
31 { | |
32 LARGE_INTEGER curTime; | |
33 ::SetThreadAffinityMask(m_threadId, 1); | |
34 ::QueryPerformanceCounter(&curTime); | |
35 ::SetThreadAffinityMask(m_threadId, m_processAffinityMask); | |
36 return curTime.QuadPart; | |
37 } | |
38 | |
39 | |
40 | |
41 void TimeHelpers::SleepMs(int const ms) | |
42 { | |
43 ::Sleep(ms); | |
44 } | |
45 | |
46 } |