diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ext/UnitTest++/src/Win32/TimeHelpers.cpp	Sat Jul 12 12:00:57 2008 +0000
@@ -0,0 +1,46 @@
+#include "TimeHelpers.h"
+#include <windows.h>
+
+namespace UnitTest {
+
+Timer::Timer()
+    : m_startTime(0)
+{
+    m_threadId = ::GetCurrentThread();
+    DWORD_PTR systemMask;
+    ::GetProcessAffinityMask(GetCurrentProcess(), &m_processAffinityMask, &systemMask);
+    
+    ::SetThreadAffinityMask(m_threadId, 1);
+	::QueryPerformanceFrequency(reinterpret_cast< LARGE_INTEGER* >(&m_frequency));
+    ::SetThreadAffinityMask(m_threadId, m_processAffinityMask);
+}
+
+void Timer::Start()
+{
+    m_startTime = GetTime();
+}
+
+int Timer::GetTimeInMs() const
+{
+    __int64 const elapsedTime = GetTime() - m_startTime;
+	double const seconds = double(elapsedTime) / double(m_frequency);
+	return int(seconds * 1000.0f);
+}
+
+__int64 Timer::GetTime() const
+{
+    LARGE_INTEGER curTime;
+    ::SetThreadAffinityMask(m_threadId, 1);
+	::QueryPerformanceCounter(&curTime);
+    ::SetThreadAffinityMask(m_threadId, m_processAffinityMask);
+    return curTime.QuadPart;
+}
+
+
+
+void TimeHelpers::SleepMs(int const ms)
+{
+	::Sleep(ms);
+}
+
+}