当前位置: 首页 > news >正文

潍坊知名网站建设服务商vultr宝塔wordpress

潍坊知名网站建设服务商,vultr宝塔wordpress,pc网站建设怎么弄,郑州一建拖欠工资项目完整版在: 文章目录 一、channel模块:事件管理Channel类实现二、提供的功能三、实现思想(一)功能(二)意义(三)功能设计 四、代码(一)框架(二…

项目完整版在:

文章目录

  • 一、channel模块:事件管理Channel类实现
  • 二、提供的功能
  • 三、实现思想
    • (一)功能
    • (二)意义
    • (三)功能设计
  • 四、代码
    • (一)框架
    • (二)完整

一、channel模块:事件管理Channel类实现

在这里插入图片描述

二、提供的功能

1.对监控事件的管理
描述符是否可读
描述符是否可写
对描述符监控可读
对描述符监控可写
解除可读事件监控
解除可写事件监控
解除所有事件监控
2.对监控事件触发后的处理
设置对于不同事件的回调处理函数
明确触发了某个事件该如何处理

三、实现思想

(一)功能

对socket套接字的操作进行封装。

(二)意义

对socket套接字的操作进行封装。

(三)功能设计

1.对监控事件的管理
描述符是否可读
描述符是否可写
对描述符监控可读
对描述符监控可写
解除可读事件监控
解除可写事件监控
解除所有事件监控
2.对监控事件触发后的处理
设置对于不同事件的回调处理函数
明确触发了某个事件该如何处理

四、代码

(一)框架

class Channel {private:int _fd;uint32_t events;  // 当前需要监控的事件uint32_t revents; // 当前连接触发的事件using eventCallback = std::function<void()>>;eventCallback _read_callback;  // 可读事件被触发的回调函数eventCallback _error_callback; // 可写事件被触发的回调函数eventCallback _close_callback; // 连接关闭事件被触发的回调函数eventCallback _event_callback; // 任意事件被触发的回调函数eventCallback _write_callback; // 可写事件被触发的回调函数public:Channel(int fd) : fd(_fd) {}int Fd() {return _fd ;}void setReadCallback(const eventCallback &cb);void setWriteCallback(const eventCallback &cb);void setErrorCallback(const eventCallback &cb);void setCloseCallback(const eventCallback &cb);void setEventCallback(const eventCallback &cb);bool readAble();   // 当前是否可读bool writeAble();  // 当前是否可写void enableRead(); // 启动读事件监控void enableWrite(); // 启动写事件监控void disableRead();     // 关闭读事件监控void disableWrite(); // 关闭写事件监控void disableAll();  // 关闭所有事件监控void Remove();  //移除监控void handleEvent(); // 事件处理,一旦触发了某个事件,就调用这个函数!};

(二)完整

class Channel {private:int _fd;uint32_t events;  // 当前需要监控的事件uint32_t revents; // 当前连接触发的事件using eventCallback = std::function<void()>>;eventCallback _read_callback;  // 可读事件被触发的回调函数eventCallback _error_callback; // 可写事件被触发的回调函数eventCallback _close_callback; // 连接关闭事件被触发的回调函数eventCallback _event_callback; // 任意事件被触发的回调函数eventCallback _write_callback; // 可写事件被触发的回调函数public:Channel(int fd) : fd(_fd) {}int Fd() {return _fd ;}void SetRevents(uint32_t events) {_revents = events; }void setReadCallback(const eventCallback &cb) { _read_callback = cb;}void setWriteCallback(const eventCallback &cb) { _write_callback = cb; }void setErrorCallback(const eventCallback &cb) { _error_callback = cb; }void setCloseCallback(const eventCallback &cb) { _close_callback = cb; }void setEventCallback(const eventCallback &cb) { _event_callback = cb; }bool readAble() {  // 当前是否可读 return (_events & EPOLLIN);}bool writeAble() {  // 当前是否可写return (_events & EPOLLOUT);}void enableRead() {// 启动读事件监控_events |= EPOLLIN; // 后面会添加到EventLoop的事件监控!}void enableWrite() { // 启动写事件监控 _events |= EPOLLOUT; // 后面会添加到EventLoop的事件监控!}void disableRead() {    // 关闭读事件监控_events &= ~EPOLLIN;   // 后面会修改到EventLoop的事件监控!}void disableWrite() { // 关闭写事件监控 _events &= ~EPOLLOUT;}void disableAll() { // 关闭所有事件监控_events = 0;}void Remove();  // 后面会调用EventLoop接口移除监控void HandleEvent() {if ((_revents & EPOLLIN) || (_revents & EPOLLRDHUP) || (_revents & EPOLLPRI)) {if (_read_callback) _read_callback();}/*有可能会释放连接的操作事件,一次只处理一个*/if (_revents & EPOLLOUT) {if (_write_callback) _write_callback();}else if (_revents & EPOLLERR) {if (_error_callback) _error_callback();//一旦出错,就会释放连接,因此要放到前边调用任意回调}else if (_revents & EPOLLHUP) {if (_close_callback) _close_callback();}/*不管任何事件,都调用的回调函数*/if (_event_callback) _event_callback();}};
http://www.yayakq.cn/news/939092/

相关文章:

  • ui设计师个人网站建设wordpress页面的添加
  • 全站仪建站视频如何个人创建微信公众号
  • 建设厅科技中心网站首页网站统计付费
  • seo快速排名软件方案网站优化案例
  • 河南省汝州市建设门户网站可以做描文本的网站
  • 服务商名称是什么意思小江seo
  • 做ppt的网站wordpress文章显示标题在首页
  • 做艺人资料卡的网站企业画册设计图片
  • 国内对企业网站开发的研究辽宁省住房与城乡建设厅网站
  • 泰安肥城做网站的公司黑镜主题2.0wordpress
  • 重生主角做视频网站的小说淘宝网站开发系统
  • 中山网站建设文化咨询搜狐一开始把网站当做什么来做
  • 快钱支付需要网站备案吗炫酷网站界面设计
  • 网站如何制作注册合肥网站建设电话咨询
  • 安徽四建东方建设有限公司网站做外贸的网站看啥书
  • 泰塔科技网站建设word模板
  • 个人做网站用哪个主机好百度打广告多少钱
  • 北京app开发网站建设如何利用国外的网站开发客户
  • 国内做家具外贸的网站有哪些wordpress安装模板文件
  • 金方时代做网站怎么样wordpress 写作主题
  • 龙华区住房和建设局网站辽宁省建设工程信息网官网新网站
  • 刷赞网站推广免费软件中国建设企业银行官网站
  • 中国设计网站排行榜前十名wordpress 主题 单栏
  • 中英文网站开发费用百度域名查询官网
  • 网站代备案高端网站设计图片
  • 做ppt配图好用的网站名片在哪个网站可以做
  • 怎么建一个小说网站seo技术服务
  • 临沂经开区建设局网站做网站都要掌握什么
  • 营销网站主题有哪些内容wordpress 留言板代码
  • 哪家网站遴选做的比较好武安做网站