libev学习(二)常见类型剖析
来源:互联网 发布:手机淘宝退货退款金额 编辑:程序博客网 时间:2024/06/13 23:58
之前提到使用libev开发服务器相对较容易,用户只需要向感兴趣的事件注册回调函数。回调函数中的参数有 struct ev_loop 和 struct ev_io .
先来看看struct ev_io 这个类型
typedef struct ev_io{ EV_WATCHER_LIST (ev_io) int fd; /* ro */ int events; /* ro */};
看看 EV_WATCHER_LIST 的定义
#define EV_WATCHER_LIST(type) \ EV_WATCHER (type) \ struct ev_watcher_list *next;
再看看EV_WATCHER的定义
#define EV_WATCHER (type) \ int active; /* private */ \ int pending; /* private */ \ EV_DECL_PRIORITY /* private */ \ EV_COMMON /* rw */ \ EV_CB_DECLARE (type) /* private */再看看ev_watcher_list的定义
typedef struct ev_watcher_list{ EV_WATCHER_LIST (ev_watcher_list)} ev_watcher_list;
struct ev_io 结构公开的字段有 fd 和 events, 其他字段libev内部使用。
struct ev_loop 这个类型内部结构并没有对用户开放struct ev_loop{ ev_tstamp ev_rt_now; #define ev_rt_now ((loop)->ev_rt_now) #define VAR(name, decl) decl; #include "ev_vars.h" #undef VAR};ev_vars.h 这个文件里面都是一些 VARx 和 VAR 宏,通过宏展开用来定义一些变量和函数,比较多,暂不一一分析。
0 0
- libev学习(二)常见类型剖析
- libev学习(一)初识libev
- libev 学习(一)
- libev学习笔记(二)——ev_io
- PMP学习笔记(二)常见合同类型
- libev学习
- RecyclerView剖析学习(二)
- libev学习笔记(持续更新)
- 二,String类型内部结构剖析
- 《STL源码剖析》学习笔记(二)
- STL源码剖析学习笔记(二)
- Libev学习笔记1
- libev 学习笔记
- libev学习资料
- libev学习资料
- libev学习笔记(一)——主要数据结构
- libev学习笔记(一)——主要数据结构
- libev学习笔记(持续更新) ------good入门好文
- mysql登录出现:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
- iOS开发点滴-cocoapods在64bit编译
- NGUI本地化系统应用
- 图片读写分离
- 【php缓存技术】php缓存技术的多种实现方法
- libev学习(二)常见类型剖析
- window内存
- 深入研究Struts2(一)---Struts2是什么?它的工作原理是什么?
- <a>作Form表单提</a>
- 保存视频到自定义位置
- 网页到底是用新窗口打开好,还是用当前页打开比较好呢
- Qt5 for android + opencv
- 字符串反转——来自华为OJ平台测试基础篇
- 生成XML文件,通过实体生成XML文件