2020-06-07 00:29:09 +03:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <map>
|
|
|
|
|
|
|
|
#include "ringloop.h"
|
|
|
|
#include "timerfd_manager.h"
|
|
|
|
|
|
|
|
class epoll_manager_t
|
|
|
|
{
|
|
|
|
int epoll_fd;
|
|
|
|
ring_loop_t *ringloop;
|
|
|
|
std::map<int, std::function<void(int, int)>> epoll_handlers;
|
|
|
|
public:
|
|
|
|
epoll_manager_t(ring_loop_t *ringloop);
|
|
|
|
~epoll_manager_t();
|
2020-06-23 20:18:04 +03:00
|
|
|
void set_fd_handler(int fd, bool wr, std::function<void(int, int)> handler);
|
2020-06-07 00:29:09 +03:00
|
|
|
void handle_epoll_events();
|
|
|
|
|
|
|
|
timerfd_manager_t *tfd;
|
|
|
|
};
|