#ifndef _EPOLL_H_ #define _EPOLL_H_ #include typedef struct EPoll EPoll; typedef enum { EPOLL_READ = 1 << 0, EPOLL_WRITE = 1 << 1, EPOLL_HANGUP = 1 << 2, EPOLL_ERROR = 1 << 3, EPOLL_PRIORITY = 1 << 4, } EPollEventType; typedef struct { EPollEventType events; int fd; } EPollEvent; EPoll *epoll_new (void); void epoll_add_fd (EPoll *epoll, int fd, EPollEventType mask, gpointer data); void epoll_remove_fd (EPoll *epoll, int fd); gpointer epoll_get_fd_data (EPoll *epoll, int fd); gboolean epoll_has_fd (EPoll *epoll, int fd); void epoll_reenable_fd (EPoll *epoll, int fd); gint epoll_get_n_fds (EPoll *epoll); EPollEvent * epoll_wait (EPoll *epoll, int *n_events, int timeout); #endif