博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(原创)boost定时器类
阅读量:6608 次
发布时间:2019-06-24

本文共 1608 字,大约阅读时间需要 5 分钟。

        最近,在写一个小项目,里面需要一个可以检测超时的东西,刚好再学boost(boss告诉我STL效率好低,我也不知道是不是),打算用boost写一个。代码贴出来,大家多指教指教。

#ifndef TIMEOUTCONTROLLER_HPP_#define TIMEOUTCONTROLLER_HPP_#include 
#include
//超时控制器类class TimeoutController {public: /** * 超时控制器构造函数 * @param ios 异步I/O对象 * @param callbackFunc 超时处理回调函数 * @param uiWaitSec 定时器间隔等待时间,单位:秒 */ explicit TimeoutController(boost::asio::io_service &ios, boost::function
callbackFunc, unsigned int uiWaitSec) : timer(ios, boost::posix_time::seconds(uiWaitSec)) { timeoutHandle = callbackFunc; m_uiWaitSec = uiWaitSec; timer.async_wait( boost::bind(&TimeoutController::onTime, this, boost::asio::placeholders::error)); } /** * 析构函数 */ ~TimeoutController() { timer.cancel(); } /** * 定时器响应函数 * @param error_code 定时器异常错误信息 */ inline void onTime(const boost::system::error_code&) { timeoutHandle(); timer.expires_at( timer.expires_at() + boost::posix_time::seconds(m_uiWaitSec)); timer.async_wait( boost::bind(&TimeoutController::onTime, this, boost::asio::placeholders::error)); }private: unsigned int m_uiWaitSec; //定时间间隔等待时间 boost::asio::deadline_timer timer; //asio定时器 boost::function
timeoutHandle; //超时处理回调函数};#endif /* TIMEOUTCONTROLLER_HPP_ */

 

欢迎转载(需保留此句),原文地址:http://www.cnblogs.com/wycnb/

 

转载于:https://www.cnblogs.com/wycnb/p/4669556.html

你可能感兴趣的文章
ThinkPHP3.2.3 自定义标签库的使用
查看>>
Activiti 5.17 实体对象与类和数据库表的映射
查看>>
【转】SVN服务器端安装、配置与管理--不错
查看>>
Fragment中的setUserVisibleHint()方法调用
查看>>
获取、增加、修改、删除sqlserver字段描述及快速查看表字段与描述
查看>>
转FTP协议详解
查看>>
js继承实例
查看>>
ABP源码分析三十八: ABP.Web.Api.OData
查看>>
[PHP] 看博客学习观察者模式
查看>>
索引失效的情况
查看>>
MySql 里的IFNULL、NULLIF和ISNULL用法区别
查看>>
[mybatis] mybatis错误:Invalid bound statement (not found)
查看>>
读取excel文件内容代码
查看>>
各高级语言特点与比较
查看>>
iOS地图 -- 区域监听的实现和小练习
查看>>
Spring Boot实现一个监听用户请求的拦截器
查看>>
Java多线程总结之线程安全队列Queue
查看>>
百度编辑器 Ueditor 下拉处增加字体
查看>>
WPF 虚拟化 VirtualizingWrapPanel 和 VirtualLizingTilePanel
查看>>
Redis快速入门
查看>>