/* * File : pm_timer.h * COPYRIGHT (C) 2012-2017, Shanghai Real-Thread Technology Co., Ltd * * Change Logs: * Date Author Notes * 2017-11-05 realthread the first version */ #pragma once #include #include #include namespace Persimmon { class Timer: private utils::noncopyable { public: enum flag { ONE_SHOT = RT_TIMER_FLAG_ONE_SHOT, PERIODIC = RT_TIMER_FLAG_PERIODIC, SOFT_TIMER = RT_TIMER_FLAG_SOFT_TIMER, }; Timer(int time, enum flag flag); ~Timer(); void start(); void stop(); void setTimeout(int time); Signal timeout; private: struct rtgui_timer *m_timer; static void _onTimeout(struct rtgui_timer *timer, void *parameter); }; }