libevent的各个基本函数的使用
libevent也是为后续服务器与客户端搭建做准备,有利于大家能更容易阅读源码
- event_new
- event_free
- event_debug_unassign
- event_add
- event_del
- event_base_once
- event_pending
- event_base_set
- event_get_events
- event_get_callback
- event_get_base
- event_get_base
- event_get_base
- event_get_base
event_new
struct event *event_new(struct event_base *base, evutil_socket_t fd,
short events, event_callback_fn callback,
void *callback_arg);
初始化event事件,后续可以将event放到even_base里
fd对应的句柄你可以理解为linux的open后返回的值
events 事件类型
callback就是回调函数,你可以理解为当触发该信号时要处理的函数
callback_arg 就是回调函数的参数,你就理解为给回调函数传参
event_free
void event_free(struct event *);
回收event_new分配的event
event_debug_unassign
启用调试检测
就是类似于我之前文章写,当遇到逻辑不符合时会打印逻辑不符的位置
如函数assert
使用这个必须要在event创建前
event_add
int event_add(struct event *ev, const struct timeval *timeout);
添加event到event_base事件循环里
event_del
int event_del(struct event *ev);
就是删除调度器里的事件
event_base_once
int event_base_once(struct event_base *base, evutil_socket_t fd,
short events, event_callback_fn callback, void *arg,
const struct timeval *timeout);
就是该事件只执行一次
event_pending
int event_pending(const struct event *ev, short events, struct timeval *tv);
用来判断event_base里该事件是否处理pending状态
event_base_set
int event_base_set(struct event_base *eb, struct event *ev);
就是把event绑定到新的event_base里
event_get_events
short event_get_events(const struct event *ev);
获取event里的监听事件,他是通过|来合并的所以要自己拆分
比如1和2或了之后的二进制是11 2和4或了之后的二进制是110
event_get_callback
event_callback_fn event_get_callback(const struct event *ev);
就是获取event的回调函数
event_get_base
struct event_base *event_get_base(const struct event *ev);
获取event绑定的event_base指针