libevent源代码文件组织结构:
1)头文件: event.h —— 事件宏定义、接口函数声明,主要结构体event的声明;
2)内部头文件: xxx-internal.h —— 内部数据结构和函数,(对外不可见,信息隐藏);
3)libevent框架: event.c —— event整体框架的代码实现;
4)I/O 多路复用机制:epoll.c、select.c、devpoll.c、kqueue.c
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 —— 基本数据结构,链表、双向链表、队列等。
11)实用网络库: http 和 evdns —— 是基于libevent实现的http服务器和异步dns查询库。