Chinaunix首页 | 论坛 | 博客
  • 博客访问: 96903
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-24 22:04
文章分类

全部博文(31)

文章存档

2014年(31)

我的朋友

分类: C/C++

2014-05-29 14:51:32

主要的函数声明:


点击(此处)折叠或打开

  1. TAILQ_HEAD (event_list, event); //声明event_list为event链表的头节点
声明一个event链表的头部结构,名称是event_list, 该结构在event_base的声明中被使用


点击(此处)折叠或打开

  1. TAILQ_HEAD (evkeyvalq, evkeyval); //定义evkeyvalq为evkeyval链表的头节点


点击(此处)折叠或打开

  1. struct event_base *event_base_new(void)   //创建一个event_base
该函数被event_init()函数调用



点击(此处)折叠或打开

  1. struct event_base *event_init(void)   //创建一个event_base对象base,并把创建的base赋给全局event_struct对象current_base
该函数直接被应用系统调用


点击(此处)折叠或打开

  1. int event_reinit(struct event_base *base)

点击(此处)折叠或打开

  1. int event_dispatch(void)
事件分发
该函数直接被应用系统调用


点击(此处)折叠或打开

  1. int event_base_dispatch(struct event_base *)
事件分发,开始某个指定的event_base的主循环
该函数直接被应用程序调用


点击(此处)折叠或打开

  1. const char *event_base_get_method(struct event_base *)


点击(此处)折叠或打开

  1. void event_base_free(struct event_base *)
释放指定event_base的所有占用的资源
该函数直接被应用程序调用

点击(此处)折叠或打开

  1. typedef void (*event_log_cb)(int severity, const char *msg)
声明日志回调函数类型

点击(此处)折叠或打开

  1. void event_set_log_callback(event_log_cb cb)
设定日志回调函数



点击(此处)折叠或打开

  1. int event_base_set(struct event_base *, struct event *)
绑定某个event到特定的event_base
该函数直接被应用程序调用


点击(此处)折叠或打开

  1. *///处理事件,与event_dispatch()类似
  2. int event_loop(int)
该函数被event_dispatch函数调用


点击(此处)折叠或打开

  1. int event_base_loop(struct event_base *, int)
该函数被event_base_dispatch函数调用


点击(此处)折叠或打开

  1. *///指定时间后退出循环
  2. int event_loopexit(const struct timeval *)
该函数直接被应用程序调用


点击(此处)折叠或打开

  1. *///指定时间后退出循环,线程安全的
  2. int event_base_loopexit(struct event_base *, const struct timeval *)
该函数直接被应用程序调用



点击(此处)折叠或打开

  1. int event_loopbreak(void);//立即终止循环
该函数直接被应用程序调用


点击(此处)折叠或打开

  1. int event_base_loopbreak(struct event_base *);//立即终止循环,
该函数直接被应用程序调用


点击(此处)折叠或打开

  1. #define evtimer_add(ev, tv)        event_add(ev, tv)//增加定时器事件
  2. #define evtimer_set(ev, cb, arg)    event_set(ev, -1, 0, cb, arg)//设置定时器时间
  3. #define evtimer_del(ev)            event_del(ev)//删除定时器事件
  4. #define evtimer_pending(ev, tv)        event_pending(ev, EV_TIMEOUT, tv)//event挂起
  5. #define evtimer_initialized(ev)        ((ev)->ev_flags & EVLIST_INIT) //判断该事件是不是初始化


点击(此处)折叠或打开

  1. #define timeout_add(ev, tv)        event_add(ev, tv)//增加一个超时event
  2. #define timeout_set(ev, cb, arg)    event_set(ev, -1, 0, cb, arg)//设定一个超时event
  3. #define timeout_del(ev)            event_del(ev)   //删除超时event
  4. #define timeout_pending(ev, tv)        event_pending(ev, EV_TIMEOUT, tv)
  5. #define timeout_initialized(ev)        ((ev)->ev_flags & EVLIST_INIT)


点击(此处)折叠或打开

  1. #define signal_add(ev, tv)        event_add(ev, tv)
  2. #define signal_set(ev, x, cb, arg)    \
  3.     event_set(ev, x, EV_SIGNAL|EV_PERSIST, cb, arg)
  4. #define signal_del(ev)            event_del(ev)
  5. #define signal_pending(ev, tv)        event_pending(ev, EV_SIGNAL, tv)
  6. #define signal_initialized(ev)        ((ev)->ev_flags & EVLIST_INIT)


点击(此处)折叠或打开

  1. void event_set(struct event *, int, short, void (*)(int, short, void *), void *)
该函数直接被应用程序调用


点击(此处)折叠或打开

  1. int event_once(int, short, void (*)(int, short, void *), void *,
  2.     const struct timeval *)


点击(此处)折叠或打开

  1. int event_base_once(struct event_base *base, int fd, short events,
  2.     void (*callback)(int, short, void *), void *arg,
  3.     const struct timeval *timeout)
该函数被event_loopexit函数与event_base_loopexit函数调用


点击(此处)折叠或打开

  1. int event_add(struct event *ev, const struct timeval *timeout)
该函数直接被应用程序调用


点击(此处)折叠或打开

  1. int event_del(struct event *)


点击(此处)折叠或打开

  1. void event_active(struct event *, int, short)


点击(此处)折叠或打开

  1. int event_pending(struct event *ev, short event, struct timeval *tv)


点击(此处)折叠或打开

  1. #define event_initialized(ev)        ((ev)->ev_flags & EVLIST_INIT)


点击(此处)折叠或打开

  1. const char *event_get_version(void)


点击(此处)折叠或打开

  1. const char *event_get_method(void)


点击(此处)折叠或打开

  1. int    event_priority_init(int)


点击(此处)折叠或打开

  1. int    event_base_priority_init(struct event_base *, int)


点击(此处)折叠或打开

  1. int    event_priority_set(struct event *, int)





bufferevent

点击(此处)折叠或打开

  1. struct bufferevent *bufferevent_new(int fd,
  2.     evbuffercb readcb, evbuffercb writecb, everrorcb errorcb, void *cbarg)


点击(此处)折叠或打开

  1. int bufferevent_base_set(struct event_base *base, struct bufferevent *bufev)


点击(此处)折叠或打开

  1. int bufferevent_priority_set(struct bufferevent *bufev, int pri)


点击(此处)折叠或打开

  1. void bufferevent_free(struct bufferevent *bufev)


点击(此处)折叠或打开

  1. void bufferevent_setcb(struct bufferevent *bufev,
  2.     evbuffercb readcb, evbuffercb writecb, everrorcb errorcb, void *cbarg)


点击(此处)折叠或打开

  1. void bufferevent_setfd(struct bufferevent *bufev, int fd)


点击(此处)折叠或打开

  1. int bufferevent_write(struct bufferevent *bufev,
  2.     const void *data, size_t size)


点击(此处)折叠或打开

  1. int bufferevent_write_buffer(struct bufferevent *bufev, struct evbuffer *buf)


点击(此处)折叠或打开

  1. size_t bufferevent_read(struct bufferevent *bufev, void *data, size_t size)


点击(此处)折叠或打开

  1. int bufferevent_enable(struct bufferevent *bufev, short event)


点击(此处)折叠或打开

  1. int bufferevent_disable(struct bufferevent *bufev, short event)


点击(此处)折叠或打开

  1. void bufferevent_settimeout(struct bufferevent *bufev,
  2.     int timeout_read, int timeout_write)


点击(此处)折叠或打开

  1. void bufferevent_setwatermark(struct bufferevent *bufev, short events,
  2.     size_t lowmark, size_t highmark)


点击(此处)折叠或打开

  1. #define EVBUFFER_LENGTH(x)    (x)->off
  2. #define EVBUFFER_DATA(x)    (x)->buffer
  3. #define EVBUFFER_INPUT(x)    (x)->input
  4. #define EVBUFFER_OUTPUT(x)    (x)->output


点击(此处)折叠或打开

  1. struct evbuffer *evbuffer_new(void)


点击(此处)折叠或打开

  1. void evbuffer_free(struct evbuffer *)


点击(此处)折叠或打开

  1. int evbuffer_expand(struct evbuffer *, size_t)


点击(此处)折叠或打开

  1. int evbuffer_add(struct evbuffer *, const void *, size_t)


点击(此处)折叠或打开

  1. int evbuffer_remove(struct evbuffer *, void *, size_t)


点击(此处)折叠或打开

  1. char *evbuffer_readline(struct evbuffer *)


点击(此处)折叠或打开

  1. /** Used to tell evbuffer_readln what kind of line-ending to look for.
  2.  */
  3. enum evbuffer_eol_style {
  4.     /** Any sequence of CR and LF characters is acceptable as an EOL. */
  5.     EVBUFFER_EOL_ANY,
  6.     /** An EOL is an LF, optionally preceded by a CR. This style is
  7.      * most useful for implementing text-based internet protocols. */
  8.     EVBUFFER_EOL_CRLF,
  9.     /** An EOL is a CR followed by an LF. */
  10.     EVBUFFER_EOL_CRLF_STRICT,
  11.     /** An EOL is a LF. */
  12.         EVBUFFER_EOL_LF
  13. }



点击(此处)折叠或打开

  1. char *evbuffer_readln(struct evbuffer *buffer, size_t *n_read_out,
  2.     enum evbuffer_eol_style eol_style)


点击(此处)折叠或打开

  1. int evbuffer_add_buffer(struct evbuffer *, struct evbuffer *)


点击(此处)折叠或打开

  1. int evbuffer_add_vprintf(struct evbuffer *, const char *fmt, va_list ap)


点击(此处)折叠或打开

  1. void evbuffer_drain(struct evbuffer *, size_t)


点击(此处)折叠或打开

  1. int evbuffer_write(struct evbuffer *, int)


点击(此处)折叠或打开

  1. int evbuffer_read(struct evbuffer *, int, int)



点击(此处)折叠或打开

  1. u_char *evbuffer_find(struct evbuffer *, const u_char *, size_t)


点击(此处)折叠或打开

  1. void evbuffer_setcb(struct evbuffer *, void (*)(struct evbuffer *, size_t, size_t, void *), void *)


点击(此处)折叠或打开

  1. void evtag_init(void)


点击(此处)折叠或打开

  1. void evtag_marshal(struct evbuffer *evbuf, ev_uint32_t tag, const void *data,
  2.     ev_uint32_t len)


点击(此处)折叠或打开

  1. void encode_int(struct evbuffer *evbuf, ev_uint32_t number)



点击(此处)折叠或打开

  1. void evtag_marshal_int(struct evbuffer *evbuf, ev_uint32_t tag,
  2.     ev_uint32_t integer);

  3. void evtag_marshal_string(struct evbuffer *buf, ev_uint32_t tag,
  4.     const char *string);

  5. void evtag_marshal_timeval(struct evbuffer *evbuf, ev_uint32_t tag,
  6.     struct timeval *tv);

  7. int evtag_unmarshal(st
阅读(965) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~