libevent源码分析--代码结构
2014-01-13 10:05
267 查看
Libevent的源代码虽然都在一层文件夹下面,但是其代码分类还是相当清晰的,主要可分为
头文件、内部使用的头文件、辅助功能函数、日志、libevent 框架、对系统I/O多路复用机
制的封装、信号管理、定时事件管理、缓冲区管理、基本数据结构和基于libevent的两个实
用库等几个部分,有些部分可能就是一个源文件。
源代码中的test部分就不在我们关注的范畴了。
1)头文件
主要就是event.h:事件宏定义、接口函数声明,主要结构体event的声明;
2)内部头文件
xxx-internal.h:内部数据结构和函数,对外不可见,以达到信息隐藏的目的;
3)libevent框架
event.c:event整体框架的代码实现;
4)对系统I/O多路复用机制的封装
epoll.c:对epoll的封装;
select.c:对select的封装;
devpoll.c:对dev/poll的封装;
kqueue.c:对kqueue的封装;
5)定时事件管理
min-heap.h:其实就是一个以时间作为key的小根堆结构;
6)信号管理
signal.c:对信号事件的处理;
7)辅助功能函数
evutil.h 和evutil.c:一些辅助功能函数,包括创建socket pair和一些时间操作函数:加、减
和比较等。
8)日志
log.h和log.c:log日志函数
9)缓冲区管理
evbuffer.c和buffer.c:libevent对缓冲区的封装;
10)基本数据结构
compat\sys下的两个源文件:queue.h是libevent基本数据结构的实现,包括链表,双向链表,
队列等;_libevent_time.h:一些用于时间操作的结构体定义、函数和宏定义;
11)实用网络库
13
http和evdns:是基于libevent实现的http服务器和异步dns查询库;
头文件、内部使用的头文件、辅助功能函数、日志、libevent 框架、对系统I/O多路复用机
制的封装、信号管理、定时事件管理、缓冲区管理、基本数据结构和基于libevent的两个实
用库等几个部分,有些部分可能就是一个源文件。
源代码中的test部分就不在我们关注的范畴了。
1)头文件
主要就是event.h:事件宏定义、接口函数声明,主要结构体event的声明;
2)内部头文件
xxx-internal.h:内部数据结构和函数,对外不可见,以达到信息隐藏的目的;
3)libevent框架
event.c:event整体框架的代码实现;
4)对系统I/O多路复用机制的封装
epoll.c:对epoll的封装;
select.c:对select的封装;
devpoll.c:对dev/poll的封装;
kqueue.c:对kqueue的封装;
5)定时事件管理
min-heap.h:其实就是一个以时间作为key的小根堆结构;
6)信号管理
signal.c:对信号事件的处理;
7)辅助功能函数
evutil.h 和evutil.c:一些辅助功能函数,包括创建socket pair和一些时间操作函数:加、减
和比较等。
8)日志
log.h和log.c:log日志函数
9)缓冲区管理
evbuffer.c和buffer.c:libevent对缓冲区的封装;
10)基本数据结构
compat\sys下的两个源文件:queue.h是libevent基本数据结构的实现,包括链表,双向链表,
队列等;_libevent_time.h:一些用于时间操作的结构体定义、函数和宏定义;
11)实用网络库
13
http和evdns:是基于libevent实现的http服务器和异步dns查询库;
相关文章推荐
- MySQL源码分析——代码结构与基本流程
- EntLib.com Forum / YAF 开源论坛--源码的目录结构(对分析代码很有帮助)
- Libevent源码分析-----evbuffer结构与基本操作
- OpenERP源码结构分析及RPC相关代码分布
- jquery源码解析:代码结构分析
- sqoop 抽取源码流程分析( 二 ) 导入工具代码结构分析
- boa源码分析(3)--代码结构
- C++卷积神经网络实例:tiny_cnn代码详解(11)——层结构容器layers类源码分析
- Libevent源码分析-----evbuffer结构与基本操作
- boa源码分析(3)--代码结构
- Libevent源码分析-----evbuffer结构与基本操作
- libevent源码分析1 ----evnet相关结构体分析
- C#分析数据库结构,使用XSL模板自动生成代码 - 清清月儿 .NET万花筒 Asp.net技术 Asp.net教程 Asp.net源码 Asp.net基础 Asp.net控件 Asp.net入门 - CSDNBlog
- Libevent源码分析-----evbuffer结构与基本操作
- Uboot 源码分析----代码整体结构分析
- Flume源码分析—代码结构理解(四)
- boa源码分析(3)--代码结构
- nsq源码分析(1):代码结构
- Uboot 源码分析----代码整体结构分析
- FreeRTOS源码分析-代码结构