您的位置:首页 > 其它

boost.asio 学习笔记04——asio的体系结构

2013-05-23 14:04 239 查看

三层类关系图

根据前面的分析,我们知道asio有着这样的逻辑:

参考STL,提供basic模版,对外使用basic模版的实例提供接口。
basic模版将具体操作委托给下层服务类完成。
下层服务类再把操作委托给平台相关的服务类。

鉴于此,我们将asio体系划分为三层:io
object层,basic_模版类层,服务层。

第一层:io object层,作为应用程序直接使用的对象,是各种basic_模版类的typedef实例类。

第二层:basic_模版类层,提供对外操作的接口,并把具体操作转发给服务类。
第三层:服务层。提供具体操作的底层实现,这一层又分为两层:

操作接收层
平台适配层

基本的体系结构关系如下图所示。注意:图中并非全部asio中的类。



动态组装

前面已经提过,resolver和STL中的string一样,都是使用了basic_模板类的一个具体实例。这种在编译时动态地选择对应的组件进行编译,我们姑且称为动态组装。这种技术使得我们可以对asio的service进行扩展。例如自己实现一个resolver的service类,然后告诉basic_resolver,你要使用自己的service类,而非默认的那个……

不过话说回来,自己对boost或者STL进行扩展,需要点实力的:)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: