zoukankan      html  css  js  c++  java
  • event_new

     

    truct event *event_new(struct event_base *, evutil_socket_t, short, event_callback_fn, void *);

    分配并初始化一个新的event结构体,准备被添加。

    该函数返回一个新的event,可以被用来event_add或者event_delFdevents参数决定了哪些情况会触发事件;callbackcallback_arg告诉libevent,当事件触发的时候该干什么。

    如果事件包含EV_READ,EV_WRITE,或者他们的组合,那么fd这个文件描述符或者socket将要被监视什么时候可读,什么时候可写。如果事件包含EV_SIGNAL,那么fd就是需要等待事件的号码。如果事件不包含上面的任何标志,那么该事件只能被一个超时触发或者被event_active()手动的激活:这种情况,fd必须是-1

    EV_PERSIST标志也可以被传递给事件参数:它让event_add变永久的直到调用event_del删除该事件。

    EV_ET标志和EV_READ,EV_WRITE兼容,不过只能被特定的平台支持。它告诉Libevent使用边沿触发的事件。

    EV_TIMEOUT在这没有任何作用。

    多个事件在同一个fd上监听是没问题的;但是它们要么全是边沿触发,要么都不是边沿触发的。

    event被激活,事件循环会执行提供的回调函数,用三个参数。第一个是fd,第二个是触发的事件的bit值:EV_READ, EV_WRITE, or EV_SIGNAL.这里EV_TIMEOUT标志表示一个超时触发了,然后EV_ET表示一个边沿触发的事件发生了。第三个参数是callback_arg

    参数1base表示event base

    参数2fd,文件描述符或者socket,或者-1

    参数3events,需要监控的事件:EV_READ, EV_WRITE,

          EV_SIGNAL, EV_PERSIST, EV_ET的位域。

    参数4callback,回调函数

    参数5callback_arg, 回调函数的参数

    返回值:一个新分配的时间被创建,需要用event_free释放。

  • 相关阅读:
    Jzoj4822 完美标号
    Jzoj4822 完美标号
    Jzoj4792 整除
    Jzoj4792 整除
    Educational Codeforces Round 79 A. New Year Garland
    Good Bye 2019 C. Make Good
    ?Good Bye 2019 B. Interesting Subarray
    Good Bye 2019 A. Card Game
    力扣算法题—088扰乱字符串【二叉树】
    力扣算法题—086分隔链表
  • 原文地址:https://www.cnblogs.com/xiayong123/p/3717477.html
Copyright © 2011-2022 走看看