asio源码解析

简介: 基于1.57版本

基于1.57版本

基础组件

image.png

service

所有io服务的基类,service_base作为service的模板实现类,作为其它io服务的公共基类

image.png

id

id类用于表示service的唯一,key使用id或者typeinfo表示service的关键字,用于在service_registry注册

image.png

服务管理

服务管理是通过service_registry来实现的,包含添加,删除和是否有服务。使用链表来存储所有注册的服务

image.png

task_io_service

作为io_service的桥接,其是内部实现类,是整个io处理流程的框架核心

image.png

op_queue_:用于存放异步操作

task_operation_:表示对应task_的操作,也就是io复用相关的操作,如等待io事件就绪

task_:io事件驱动,不同平台不同实现

处理流程

image.png

win_iocp_io_service

是window下io_servivice的实现类

iocp基础

参考iocp基础

win_iocp_io_service的类结构为

image.png

completed_ops_:是用于在调用PostQueuedCompletionStatus失败时存放提交的操作

依赖关系

image.png

operation

是task_io_service_operation和win_iocp_operation的别名

image.png


proactor

asio使用的是proactor模式

image.png

参考资料:

https://learn.microsoft.com/zh-cn/windows/win32/fileio/i-o-completion-ports

目录
相关文章
|
6天前
|
Linux 网络安全 Windows
网络安全笔记-day8,DHCP部署_dhcp搭建部署,源码解析
网络安全笔记-day8,DHCP部署_dhcp搭建部署,源码解析
|
7天前
HuggingFace Tranformers 源码解析(4)
HuggingFace Tranformers 源码解析
8 0
|
7天前
HuggingFace Tranformers 源码解析(3)
HuggingFace Tranformers 源码解析
8 0
|
7天前
|
开发工具 git
HuggingFace Tranformers 源码解析(2)
HuggingFace Tranformers 源码解析
9 0
|
7天前
|
并行计算
HuggingFace Tranformers 源码解析(1)
HuggingFace Tranformers 源码解析
14 0
|
8天前
PandasTA 源码解析(二十三)
PandasTA 源码解析(二十三)
44 0
|
8天前
PandasTA 源码解析(二十二)(3)
PandasTA 源码解析(二十二)
37 0
|
8天前
PandasTA 源码解析(二十二)(2)
PandasTA 源码解析(二十二)
43 2
|
8天前
PandasTA 源码解析(二十二)(1)
PandasTA 源码解析(二十二)
35 0
|
8天前
PandasTA 源码解析(二十一)(4)
PandasTA 源码解析(二十一)
25 1

推荐镜像

更多