From 6d52bb58426f952614db9055808dbd9a57e12e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20W=2E=20Urba=C5=84czyk?= Date: Sat, 2 Apr 2011 23:45:47 +0000 Subject: [PATCH] =?UTF-8?q?timeHandler:=20FreeBSD=20fixes,=20based=20on=20?= =?UTF-8?q?plush's=20patch=20(=20#719=20).=20Aesthetic=20=E2=80=9Efixes?= =?UTF-8?q?=E2=80=9D.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timeHandler.h | 52 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 7 deletions(-) diff --git a/timeHandler.h b/timeHandler.h index 2bf39b2e3..613517968 100644 --- a/timeHandler.h +++ b/timeHandler.h @@ -1,7 +1,15 @@ #ifndef __TIMEHANDLER_H__ #define __TIMEHANDLER_H__ -#include +#ifdef __FreeBSD__ + #include + #include + #include + #define TO_MS_DIVISOR (1000) +#else + #include + #define TO_MS_DIVISOR (CLOCKS_PER_SEC/1000) +#endif /* * timeHandler.h, part of VCMI engine @@ -15,13 +23,43 @@ class timeHandler { -public: clock_t start, last, mem; - timeHandler():start(clock()){last=clock();mem=0;}; - long getDif(){long ret=clock()-last;last=clock();return ret/(CLOCKS_PER_SEC/1000);};//get diff in milliseconds - void update(){last=clock();}; - void remember(){mem=clock();}; - long memDif(){return clock()-mem;}; +public: + timeHandler() + : start(clock()) + { + last=clock(); + mem=0; + } + + long getDif() //get diff in milliseconds + { + long ret=clock()-last; + last=clock(); + return ret/TO_MS_DIVISOR; + } + void update() + { + last=clock(); + } + void remember() + { + mem=clock(); + } + long memDif() + { + return clock()-mem; + } + long clock() + { + #ifdef __FreeBSD__ + struct rusage usage; + getrusage(RUSAGE_SELF, &usage); + return static_cast(usage.ru_utime.tv_sec + usage.ru_stime.tv_sec) * 1000000 + usage.ru_utime.tv_usec + usage.ru_stime.tv_usec; + #else + return std::clock(); + #endif + } };