/* core/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 "core/timer.h" #include #include #include namespace core { Timer::Timer() { gettimeofday(&this->timer_tick, &this->timer_tz); this->timer_elapsed = 0; } Timer::~Timer() { } void Timer::mark() { gettimeofday(&timer_tick, &timer_tz); } unsigned long Timer::timestamp() { struct timeval tick; struct timezone tick_tz; gettimeofday(&tick, &tick_tz); // calculate elapsed time in 10^-6 seconds unsigned long delta = 0; delta = tick.tv_sec * 1000 + tick.tv_usec / 1000; delta -= timer_tick.tv_sec * 1000 + timer_tick.tv_usec / 1000; return delta; } float Timer::elapsed() { return ((float) timestamp() / 1000.0f); } }