/** * @file * @author Marek Bel */ #ifndef TIMER_H #define TIMER_H /** * @brief simple timer * * Simple and memory saving implementation. Should handle timer register wrap around well. * Resolution is one millisecond. To save memory, doesn't store timer period. * If you wish timer which is storing period, derive from this. */ template class Timer { public: Timer(); void start(); void stop(){m_isRunning = false;} bool running(){return m_isRunning;} bool expired(T msPeriod); private: bool m_isRunning; T m_started; }; /** * @brief Timer unsigned long specialization * * Maximum period is at least 49 days. */ using LongTimer = Timer; /** * @brief Timer unsigned short specialization * * Maximum period is at least 65 seconds. */ using ShortTimer = Timer; #endif /* TIMER_H */