libevent源码分析(三) 源代码文件组织结构

打开下载好的 l i b e v e n t libevent libevent源文件夹,会发现其所有的源文件都在此目录下;代码分类大致分为头文件、内部使用的头文件、辅助功能函数、日志、 l i b e v e n t libevent libevent 框架、对系统 I / O I/O I/O 多路复用机制的封装、信号管理、定时事件管理、缓冲区管理、基本数据结构和基于 l i b e v e n t libevent libevent 的两个实用库等几个部分。

(1)头文件:
主要是 e v e n t 2 / e v e n t . h event2/event.h event2/event.h:事件宏定义、接口函数声明,主要结构体 e v e n t event event的声明;
e v e n t 2 / t h r e a d . h event2/thread.h event2/thread.h:应用于多线程程序
e v e n t 2 / b u f f e r . h event2/buffer.h event2/buffer.h e v e n t 2 / b u f f e r e v e n t . h event2/bufferevent.h event2/bufferevent.h:读写的缓冲区管理
e v e n t 2 / u t i l . h event2/util.h event2/util.h:用于可移植的非阻塞代码的使用程序功能
e v e n t 2 / d n s . h event2/dns.h event2/dns.h:异步dns解析
e v e n t 2 / h t t p . h event2/http.h event2/http.h:基于libevent的http服务器
e v e n t 2 / r p c . h event2/rpc.h event2/rpc.h:用于创建RPC服务器和客户端的框架

(2)内部头文件:
x x x − i n t e r n a l . h xxx-internal.h xxxinternal.h:内部数据结构和函数,对外不可见,以达到信息隐藏的目的

(3) L i b e v e n t Libevent Libevent框架:
e v e n t . c : e v e n t event.c:event event.cevent整体框架的代码实现

(4)对系统 I / o I/o I/o多路复用机制的封装:
e p o l l . c epoll.c epoll.c:对 e p o l l epoll epoll的封装
s e l e c t . c select.c select.c:对 s e l e c t select select的封装
p o l l . c poll.c poll.c:对 p o l l poll poll的封装
d e v p o l l . c devpoll.c devpoll.c:对 d e v / p o l l dev/poll dev/poll的封装
k q u e u e . c kqueue.c kqueue.c:对 k q u e u e kqueue kqueue的封装

(5)定时事件管理:
m i n h e a p − i n t e r n a l . h minheap-internal.h minheapinternal.h:是一个以时间作为 k e y key key的小根堆结构

(6)信号管理:
s i n g a l . c singal.c singal.c:对信号事件的处理

(7)辅助功能函数:
e v u t i l . h evutil.h evutil.h e v u t i l . c evutil.c evutil.c:一些辅助功能函数,包括创建 s o c k e t socket socket p a i r pair pair 和一些时间操作函数:加、减

(8)日志:
l o g − i n t e r n a l . h log-internal.h loginternal.h l o g . c log.c log.c l o g log log日志函数

(9)缓冲区管理:
E v b u f f e r − i n t e r a l . h Evbuffer-interal.h Evbufferinteral.h b u f f e r . c buffer.c buffer.c l i b e v e n t libevent libevent对于缓冲区的封装

(10)基本数据结构:
c o m p a t / s y s compat/sys compat/sys下的 q u e u e . h queue.h queue.h l i b e v e n t libevent libevent 基本数据结构的实现,包括链表,双向链表,
队列等
t i m e . h time.h time.h:一些用于时间操作的结构体定义、函数和宏定义

(11)实用网络库:
h t t p http http e v d n s evdns evdns:是基于 l i b e v e n t libevent libevent 实现的 h t t p http http 服务器和异步 d n s dns dns 查询库;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值