Kanon 概述
Kanon(一): 概述
kanon是个人编写的基于Reactor模式的事件驱动型网络库。kanon不是单纯的事件框架而是网络库,是因为它同时也管理读写缓冲,用户无需关心收发逻辑。由于这个特性,从用户的角度看待,事件处理是异步的。kanon暂时不支持跨平台,仅适用于linux和unix-like平台。同时,仅支持tcp(如需支持udp, kcp等协议可以扩展)
模块划分

Thread:封装了POSIX线程接口,抽象为:Thread,Condition,Mutex,同时在其上实现了其他常用同步设施:RWLock,CountdownLatch,以及线程池。Log:日志包含时间戳,进程号,日志级别等,同时支持异步写入文件String:提供字符流(lexical_stream和fmt_stream,以及字符串工具(StringView)Network:最为核心的模块,包含Reactor组件(Channel,(E)Poller,EventLoop),定时器,封装好的TcpServer和TcpClient等。
使用方式
该库主要提供回调注册API来处理各种IO事件,基本上用户只需要关心TcpConnection,EventLoop,TcpServer,TcpClient,Buffer就能实现各种网络应用(具体场景可能需要更深入的了解或自己扩展)。
该库提供的事件回调主要有:
OnMessageCallback:处理接受的信息OnHighWaterMarkCallback:在proxy等类似的服务中用于限制读入数据,一般搭配低水位回调使用。OnWriteCompleteCallback:低水位回调,即写缓冲为空时调用,可以用来实现流水线分块写入,另外可以搭配高水位回调放行。OnConnectionCallback:在连接建立或关闭时做一些处理。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Conzxy's blog!
 评论







