Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/sys/timer.cc')
-rw-r--r--src/sys/timer.cc46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/sys/timer.cc b/src/sys/timer.cc
new file mode 100644
index 0000000..c46ece2
--- /dev/null
+++ b/src/sys/timer.cc
@@ -0,0 +1,46 @@
+/*
+ sys/timer.cc
+ This file is part of the Osirion project and is distributed under
+ the terms and conditions of the GNU General Public License version 2
+*/
+
+#include "sys/timer.h"
+
+#include <sys/time.h>
+
+#include <unistd.h>
+#include <iostream>
+
+namespace sys
+{
+
+Timer::Timer()
+{
+ reset();
+}
+
+Timer::~Timer()
+{
+}
+
+void Timer::reset()
+{
+ struct timeval tick;
+ struct timezone tick_tz;
+
+ gettimeofday(&tick, &tick_tz);
+ timer_start = tick.tv_sec * 1000 + tick.tv_usec / 1000;
+}
+
+unsigned long Timer::timestamp() const
+{
+ struct timeval tick;
+ struct timezone tick_tz;
+
+ gettimeofday(&tick, &tick_tz);
+ unsigned long delta = (tick.tv_sec * 1000 + tick.tv_usec / 1000) - timer_start;
+
+ return delta;
+}
+
+}