/* core/timer.h This file is part of the Osirion project and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_CORE_TIMER_H__ #define __INCLUDED_CORE_TIMER_H__ #include namespace core { /// a timer measures intervals in seconds /*! A timer class measures the time elapsed * between the last two calls to its mark() function. */ class Timer { public: /// Constructor Timer(); /// Destructor ~Timer(); /// mark the current time as zero /*! Reset the timer, all subsequent calls too elapsed() will * use the current timestamp as reference */ void mark(); /*! return the time elapsed since the last mark, in seconds * @see mark() */ float elapsed(); /// return timestamp since last mark, in microseconds unsigned long timestamp(); private: float timer_elapsed; struct timezone timer_tz; struct timeval timer_tick; }; // class Timer } // namespace core #endif // __INCLUDED_CORE_TIMER_H__