libevent::事件
/*****************************************************************
函数功能: 创建事件集
*****************************************************************/
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::事件的更多相关文章
- Libevent 事件管理和添加事件
/** 我们先来看一下事件的创建*/struct event * event_new(struct event_base *base, evutil_socket_t fd, short even ...
- Libevent 事件循环(2)---事件被加入激活队列
由Libevent 事件循环(1) 在上文中我们提到了libevent 事件循环event_dispatch 的大致过程,以epoll为例,我们看一下事件被如何加入激活队列. //在epoll_dis ...
- Libevent 事件循环(1)
// 事件的dispatch int event_base_loop(struct event_base *base, int flags) { //得到采用的事件模型 epoll/epoll/ ...
- libevent::事件::定时器2
#define evtimer_new(b, cb, arg) event_new((b), -1, 0, (cb), (arg)) #include <cstdio> #include ...
- libevent::事件::定时器
#include <cstdio> #include <errno.h> #include <sys/types.h> #include <event.h&g ...
- Libevent(2.1.8)中的事件结构和管理
Libevent(2.1.8)中的事件结构体 这里的libevent版本为 2.1.8 . libevent中事件的结构体struct event,定义在event_struct.h 中, 这里我们简 ...
- libevent中的事件机制
libevent是事件驱动的网络库,事件驱动是他的核心,所以理解事件驱动对于理解整个网络库有很重要的意义. 本着从简入繁,今天分析下单线程最简单的事件触发.通过sample下的event- ...
- libevent源码分析:time-test例子
time-test例子是libevent自带的一个例子,通过libevent提供的定时事件来实现,间隔固定时间打印的功能. /* * gcc -g -o time-test time-test.c - ...
- libevent库1.4升级到2.0时无法flush的解决办法
libevent的接口兼容性做的还算不错,基本上替换一下就转到新版本了.但是,强制flush数据的时候出了问题.目前的应用场景是,遇到顶号登录这种情形,先用bufferevent_write向客户端发 ...
随机推荐
- rocketmq学习(一) rocketmq介绍与安装
1.消息队列介绍 消息队列本质上来说是一个符合先进先出原则的单向队列:一方发送消息并存入消息队列尾部(生产者投递消息),一方从消息队列的头部取出消息(消费者消费消息).但对于一个成熟可靠的消息队列来说 ...
- IO流的工具类
1.需要先导入jar包: FilenameUtils import org.apache.commons.io.FilenameUtils; public class FilenameUtilesDe ...
- 基于GitHub Issues的评论系统--gitment
文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. : return " ...
- centos7防火墙命令
https://blog.csdn.net/achang21/article/details/52538049
- Unity3D-游戏场景优化之遮挡剔除(Occlusion Culling)的使用
在大型3D游戏场景中,如何优化游戏性能是非常重要的一步.一般遮挡剔除是非常常用的.接下来我们看看如何使用遮挡剔除. 假设这是一个游戏场景. 下面这是相机的视口,相机的视觉是看不到很大立方体后面的那些小 ...
- moment实现计算两个时间的差值
var m1 = moment('2018-08-14 11:00:00'), m2 = moment('2018-08-14 12:10:00'); console.log(m1)console.l ...
- fslove - Matlab求解多元多次方程组
fslove - Matlab求解多元多次方程组 简介: 之前看到网上的一些资料良莠不齐,各种转载之类的,根本无法解决实际问题,所以我打算把自己的学到的总结一下,以实例出发讲解fsolve. 示例如下 ...