Libevent(二)

 

Libevent提供了一个基于缓冲IO的抽象。这个抽象就是buffereventBufferevent提供了自动填充和输出的缓冲区。用户不会直接和IO打交道,而是从输入缓冲区读,在输出缓冲区写。

一旦用bufferevent_socket_new初始化,bufferevent结构体可以重复使用bufferevent_enable()bufferevent_disable()。你需要用bufferevent_read()bufferevent_write()进行读写,而不是直接用socket进行读写。

当读被启用,bufferevent会试图从文件描述符读数据并调用回调函数。The write callback is executed whenever the

  output buffer is drained below the write low watermark, which is 0 by

  Default.

Libevent可以用来生成定时器,当达到一定的时间后调用回调函数。Evtimer_new函数返回一个事件结构体,用来做定时器。要激活这个定时器,调用evtimer_add()。调用evtimer_del可以禁用定时器。

LibeventRPC提供了一个框架,可以用来处理所有数据的marshaling and unmarshaling

posted @ 2011-10-10 09:32  Lunaa  阅读(94)  评论(0编辑  收藏  举报