【Muduo源码剖析笔记】Muduo Base库结构简介
作为第一次阅读源码的新手,感觉Muduo库的结构和代码都还是相对其他源码清晰和简单的。Base库包含了实现网络库所需的基础组件,但是自己第一次读的时候,在各个头文件的依赖关系中绕来绕去走了一些弯路,因此笔记以源代码中,头文件和实现文件为一个编译模块为单位梳理一下Base库的结构组成。
Base库的组件有多种类型,有的组件自己实现了单一功能,比如noncopyable模块可以为其他组件提供不可复制的tag提示。有的多个组件结合在一起实现了一个功能,比如用于管理线程相关的组件。笔记尝试将组件分为以下几类:
全局函数变量组件:定义了一些在不同命名空间下的函数和变量,供其他所有的组件调用。有时候这些函数变量也会出现在其他模块中。
功能组件:特别指提供与网络库没有直接相关的功能模块,更多的是与提供与编程角度相关的功能。
结构组件:提供与网络库相关的功能模块,可供其他模块调用,是整个网络库的组成部分之一。
个人阅读源码学习顺序可以从功能组件到结构组件,从基础到比较上层的功能顺序阅读。
各个组件的详细功能笔记后续再整理发出,这里只对模块的功能进行简介。
全局函数组件
CurrentThread
其并未定义新的类,定义了在CurrentThread命名空间里的线程相关的全局函数。这些函数主要供子线程管理自己的线程相关数据信息。
Types
定义了类型转换的两个函数和一个将一片内存置零的函数。