标签:定时器 virtual ITimerPP timer int posix c++ public
项目地址
- CMAKE 管理项目
- windows使用的是: 多媒体定时器
- linux 使用的是: posix timer
- 地址: https://gitee.com/mohistH/timer-pp
- 需要c++11及以上支持
使用范例
接口使用顺序
- 1 调用 init_
- 2 启动定时器 begin_
- 3 停止定时器 end_
ITimerPP类接口
class ITimerPP
{
public:
using uint = unsigned int;
enum TimerType
{
/// 单次执行
TIMER_TYPE_ONE_SHORT = 0,
/// 周期执行
TIMER_TYPE_PERIODIC = 1,
};
public:
virtual ~ITimerPP() { }
virtual int init_(const TimerType&& tt, ITimerCallBack* pcb) = 0;
virtual int begin_(const uint&& interval_ms) = 0;
virtual int end_() = 0;
};
实现超时处理函数即可
class demoTimerCallback : public oct_tk::ITimerCallBack
{
public:
virtual void timer_call_back_()
{
static int index = 0;
std::cout << "\n index=" << ++index << "=";
}
};
创建定时器
demoTimerCallback tc;
std::unique_ptr<ITimerPP> demo_timer = oct_tk::new_itimer_();
ITimerPP* ptimer = demo_timer.get();
ptimer->init_(oct_tk::ITimerPP::TIMER_TYPE_PERIODIC, &tc);
ptimer->begin_(40);
std::this_thread::sleep_for(std::chrono::seconds(1 * 30));
ptimer->end_();
NOTE
- 完整范例可在项目中 example中 main.cc中获取
标签:定时器,virtual,ITimerPP,timer,int,posix,c++,public 来源: https://www.cnblogs.com/pandamohist/p/16398523.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。