zoukankan      html  css  js  c++  java
  • 事件tou

    #define EV_TIMER_RESOLUTION 1    /* 1 msec */
    
    #define EV_READ_EVENT EPOLLIN
    #define EV_WRITE_EVENT EPOLLOUT
    
    struct ev_event;
    struct ev_timer;
    
    typedef void *ev_user_ptr;
    typedef void (*ev_event_callback_t) (struct ev_event * event);
    
    typedef void (*ev_timer_callback_t) (struct ev_timer * timer);
    
    /* embed this to user data struct */
    typedef struct ev_event {
    
        int fd;
    
        int events;
    
        ev_event_callback_t callback;
    
    } ev_event_t;
    
    typedef struct ev_timer {
    
        uint64_t msec;
    
        uint64_t abs_msec;
    
        ev_timer_callback_t callback;
    
        ev_user_ptr data;
    
        list_node_t list;
    } ev_timer_t;
    
    typedef struct ev_context {
    
        int efd;
    
        volatile int stopped;
    
        list_head_t timer_list;    /* timer! */
    
        int max_events;
        struct epoll_event events[0];
    } ev_context_t;
    
    ev_context_t *ev_create_context(int max_events);
    void ev_destory_context(ev_context_t * c);
    
    int ev_run(ev_context_t * c);
    
    int ev_register_event(ev_context_t * c, ev_event_t * event);
    
    void ev_unregister_event(ev_context_t * c, ev_event_t * event);
    
    void ev_init_timer(ev_timer_t * timer, uint64_t msec,
               ev_timer_callback_t callback);
    
    /* must called in same thread as ev_run  */
    void ev_start_timer(ev_context_t * c, ev_timer_t * timer);
    
    /* must called in same thread as ev_run  */
    void ev_cancel_timer(ev_context_t * c, ev_timer_t * timer);
  • 相关阅读:
    [NOI2003],[AHOI2006]文本编辑器
    luogu P5151 HKE与他的小朋友
    [NOI2005]维护数列
    [HNOI2012]永无乡
    luogu P4146 序列终结者
    [SCOI2016]美味
    UVA1451 Average
    [JSOI2007]字符加密
    luogu P3809 【模板】后缀排序
    CentOS 7系统启动后怎么从命令行模式切换到图形界面模式
  • 原文地址:https://www.cnblogs.com/unixshell/p/3851618.html
Copyright © 2011-2022 走看看