/*****************************************************************
函数功能: 创建事件集
*****************************************************************/
struct event_base *event_base_new(void)
/************************************************************************
函数功能: 创建事件
输入参数: struct event_base -- 事件所在的事件集。
输出参数: evutil_socket_t --socket的描述符。
输出参数: short --事件类型,其中EV_READ表示等待读事件发生,
--EV_WRITE表示写事件发生,或者它俩的组合,
--EV_SIGNAL表示需要等待事件的号码,
--如果不包含上述的标志,就是超时事件或者手动激活的事件。
输出参数: event_callback_fn --回调函数。
输出参数: void* --回调函数的参数值。
返回值 :
说明 :
************************************************************************/
struct event event_new(struct event_base ,evutil_socket_t ,short ,event_callback_fn,void*)
/**********************************************************************
函数功能: 添加事件
输入参数: struct event * 需要添加的事件
输入参数: struct timeval* 事件的最大等待事件,如果是NULL的话,就是永久等待
***********************************************************************/
int event_add(struct event * ev,const struct timeval* timeout)
/**********************************************************************
函数功能: 需要删除的事件
输入参数: struct event * 需要删除的事件
***********************************************************************/
int event_del(struct event *)
/**********************************************************************
函数功能: 分配监听事件
输入参数: struct event_base * 需要监视的事件集
***********************************************************************/
int event_base_dispatch(struct event_base * )
/**********************************************************************
函数功能:I/O buffer事件
输入参数:struct event_base * 需要添加到的时间集
输入参数:相关的文件描述符
输入参数:0或者是相应的BEV_OPT_*可选标志
***********************************************************************/
struct bufferevent* bufferevent_socket_new (struct event_base * base, evutil_socket_t fd, int options)
/**********************************************************************
函数功能:I/O buffer事件
输入参数:struct bufferevent * bev 需要启用的bufferevent
输入参数:short event any combination of EV|READ | EV_WRITE
***********************************************************************/
int bufferevent_enable(struct bufferevent * bev,short event)
int bufferevent_disable(struct bufferevent * bev,short event)
/**********************************************************************
函数功能:
输入参数:struct bufferevent bev 读取的buffer_event事件
输入参数:void data 存储数据的指针
输入参数:size_t size 数据buffer的大小
返回 值:读取数据的字节数
***********************************************************************/
size_t bufferevent_read(struct bufferevent bev,void data,size_t size) /**********************************************************************
函数功能:
输入参数:struct bufferevent bev 读取的buffer_event事件
输入参数:void data 存储数据的指针
输入参数:size_t size 数据buffer的大小
返回 值:要写入的数据的大小,字节数
***********************************************************************/
int bufferevent_write(struct bufferevent bev,const void data,size_t size)

libevent::事件的更多相关文章

  1. Libevent 事件管理和添加事件

    /**   我们先来看一下事件的创建*/struct event * event_new(struct event_base *base, evutil_socket_t fd, short even ...

  2. Libevent 事件循环(2)---事件被加入激活队列

    由Libevent 事件循环(1) 在上文中我们提到了libevent 事件循环event_dispatch 的大致过程,以epoll为例,我们看一下事件被如何加入激活队列. //在epoll_dis ...

  3. Libevent 事件循环(1)

    // 事件的dispatch int event_base_loop(struct event_base *base, int flags) {    //得到采用的事件模型 epoll/epoll/ ...

  4. libevent::事件::定时器2

    #define evtimer_new(b, cb, arg) event_new((b), -1, 0, (cb), (arg)) #include <cstdio> #include ...

  5. libevent::事件::定时器

    #include <cstdio> #include <errno.h> #include <sys/types.h> #include <event.h&g ...

  6. Libevent(2.1.8)中的事件结构和管理

    Libevent(2.1.8)中的事件结构体 这里的libevent版本为 2.1.8 . libevent中事件的结构体struct event,定义在event_struct.h 中, 这里我们简 ...

  7. libevent中的事件机制

    libevent是事件驱动的网络库,事件驱动是他的核心,所以理解事件驱动对于理解整个网络库有很重要的意义.       本着从简入繁,今天分析下单线程最简单的事件触发.通过sample下的event- ...

  8. libevent源码分析:time-test例子

    time-test例子是libevent自带的一个例子,通过libevent提供的定时事件来实现,间隔固定时间打印的功能. /* * gcc -g -o time-test time-test.c - ...

  9. libevent库1.4升级到2.0时无法flush的解决办法

    libevent的接口兼容性做的还算不错,基本上替换一下就转到新版本了.但是,强制flush数据的时候出了问题.目前的应用场景是,遇到顶号登录这种情形,先用bufferevent_write向客户端发 ...

随机推荐

  1. 54 (OC)* 网络七层架构

    一:TCP/IP协议 二:七层协议 1:物理层 物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境.  1.1:传输媒体和互连设备        物理层的媒体包括架空明线.平衡 ...

  2. 公众号第三方授权 以及微信H5支付(前端)

    由于公司业务需要,想用户通过我们公众号平台支付的金额直接进去用户自己的账户,所以涉及到公众号第三方授权: 由于涉及第三方,故需要在微信开放平台创建第三方平台: 创建第三方平台:(申请页面链接:http ...

  3. BUG 的生命周期

    BUG 的生命周期 Bug-->软件程序的漏洞或缺陷 Bug 的类型:代码错误.设计缺陷.界面优化.性能问题.配置相关.安装部署.安全相关.标准规划.测试脚本....其他(功能类.界面类.性能类 ...

  4. elastic操作-索引重命名,索引副本数修改

    目前我们使用的elastic版本为2.3.5 当前版本没有直接的curl操作可以更改索引的名称,索引的副本数. 有直接更改索引副本数的api. curl -XPUT "192.168.1.1 ...

  5. SD-WAN 配置及应用模板**(二)

    目录 0. 前言 1. 配置模板 1.1 创建各类 'Feature' 模板: 1.1.1 添加波特率模板 1.1.2 添加 'VPN0' 模板 1.1.3 添加 'VPN10' 模板 1.1.4 添 ...

  6. java进阶文章优选链接,面试干货集合

    Java多线程: java多线程详细总结:https://blog.csdn.net/chenruijia170707/article/details/78505351 ThreadLocal 用法及 ...

  7. 无法导入要素类到SDE中

    我遇到的原因的表空间不足(并且表空间没有设置为自动增长) 首先通过SELECT FILE_NAME, TABLESPACE_NAME, AUTOEXTENSIBLE FROM DBA_DATA_FIL ...

  8. 快学Scala 第十四课 (读取行,读取字符, 控制台读取)

    读取行: import scala.io.Source object FileReader { def main(args: Array[String]): Unit = { val source = ...

  9. Vim 使用 DrawIt 画图

    简介 DrawIt 插件用来在 Vim 中进行简单的画图功能.可以方便地移动光标并画出横线.竖线.斜线.箭头和交叉字符,也带有实用的画图功能,轻松画带箭头的线.矩形及椭圆. 官方主页:https:// ...

  10. mac 安装redis及phpredis扩展

    下载phpredis扩展安装包.git clone https://github.com/nicolasff/phpredis.git: 解压后,进入该目录: 依次执行以下操作完成安装: /Appli ...