系列文章目录
《ZLToolKit源码学习笔记》(1)VS2019源码编译
《ZLToolKit源码学习笔记》(2)工具模块之日志功能分析
《ZLToolKit源码学习笔记》(3)工具模块之终端命令解析
《ZLToolKit源码学习笔记》(4)工具模块之消息广播器
《ZLToolKit源码学习笔记》(6)线程模块之整体框架概述
《ZLToolKit源码学习笔记》(7)线程模块之线程池组件:任务队列与线程组
《ZLToolKit源码学习笔记》(8)线程模块之线程负载计算器
《ZLToolKit源码学习笔记》(9)线程模块之任务执行器
《ZLToolKit源码学习笔记》(11)线程模块之工作线程池WorkThreadPool
《ZLToolKit源码学习笔记》(12)事件轮询模块之整体框架概述(本文)
《ZLToolKit源码学习笔记》(13)事件轮询模块之管道的简单封装
《ZLToolKit源码学习笔记》(14)事件轮询模块之定时器
《ZLToolKit源码学习笔记》(15)事件轮询模块之事件轮询器EventPoller
《ZLToolKit源码学习笔记》(16)网络模块之整体框架概述
《ZLToolKit源码学习笔记》(17)网络模块之基础接口封装类SockUtil
《ZLToolKit源码学习笔记》(18)网络模块之Buffer缓存
《ZLToolKit源码学习笔记》(19)网络模块之套接字封装
《ZLToolKit源码学习笔记》(20)网络模块之TcpServer
《ZLToolKit源码学习笔记》(21)网络模块之TcpClient与Session
《ZLToolKit源码学习笔记》(22)网络模块之UdpServer
前言
事件轮询模块主要是统一封装了对事件的处理机制,包括管道、网络IO、定时器等。
目录
一、概述
事件轮询模块主要包含以下文件:
PipeWrap.h, PipeWrap.cpp | 管道封装,linux是pipe函数,windows下使用TCP socket模拟实现管道。 |
Pipe.h, Pipe.cpp | 将管道(PipeWrap)和事件轮询器(EventPoller)结合起来,管道的读端读事件由事件轮询器监听,写端提供给用户发送数据。实现管道事件的统一处理。 |
SelectWrap.h, SelectWrap.cpp | 封装了select系统接口。 |
Timer.h, Timer.cpp | 定时器封装。定时触发回调是在EventPoller的runLoop中实现的。 |
EventPoller.h, EventPoller.cpp | 事件轮询器,统一的事件管理机制。内部的管道事件(执行任务)以及添加的网络IO、外部管道等事件。 |
二、类图
各文件中的类关系如下图: