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指针

event_get_base

event_get_base

event_get_base

你可能感兴趣的:(算法,linux,服务器,libevent,c++,后端)