Subversion Repositories gelsvn

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
39 bj 1
#ifndef __OSTIMER_H__
2
#define __OSTIMER_H__
3
 
4
// Created by bdl 5. april 2002
5
// The purpose of this file is to make a timer function that is as 
6
// precise as posible on any given platform
102 bj 7
#if (_MSC_VER >= 1200)
8
#pragma warning (disable: 4244)
9
#endif
39 bj 10
#ifdef WIN32
11
#include <windows.h>
12
static LARGE_INTEGER	largeInteger;
13
#else
14
#include <sys/time.h>
15
#endif
16
 
17
namespace Util{
18
	class Timer {
19
#ifdef WIN32
20
		double freq;
21
		double start_count;
22
#else
23
		timeval start_time;
24
#endif
25
	public:
26
		void start() {
27
#ifdef WIN32
28
			QueryPerformanceFrequency(&largeInteger);
29
			freq = largeInteger.QuadPart;
30
			QueryPerformanceCounter(&largeInteger);
31
			start_count = largeInteger.QuadPart;
32
#else
33
			gettimeofday(&start_time,0);
34
#endif
35
		}
36
 
37
		float get_secs() {
38
#ifdef WIN32
39
			QueryPerformanceCounter(&largeInteger);
40
			double now_count = largeInteger.QuadPart;
102 bj 41
			return (float)((now_count-start_count)/freq);
39 bj 42
#else
43
			timeval now;
44
			gettimeofday(&now,0);
45
			return (now.tv_sec-start_time.tv_sec) + 
46
				(now.tv_usec-start_time.tv_usec)/1.0e6;
47
#endif
48
		}
49
	};
50
}
51
 
52
#endif