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 }