4#include <unordered_map>
15 void run_once(
int timeout_ms)
override;
33 void* read_buf{
nullptr};
35 std::function<void(
ssize_t)> read_cb;
38 const void* write_buf{
nullptr};
40 std::function<void(
ssize_t)> write_cb;
42 bool waiting_read{
false};
43 std::function<void()> wait_read_cb;
45 bool waiting_write{
false};
46 std::function<void()> wait_write_cb;
48 bool sendfile_in_progress{
false};
49 int sendfile_in_fd{-1};
50 off_t sendfile_offset{0};
51 size_t sendfile_count{0};
52 std::function<void(
ssize_t)> sendfile_cb;
54 bool accepting{
false};
55 std::function<void(
socket_t, sockaddr_in)> accept_cb;
57 bool connecting{
false};
58 std::function<void(
int)> connect_cb;
61 void update_epoll(Context& ctx);
62 void handle_event(
const epoll_event& event);
65 std::unordered_map<int, Context> contexts_;
66 std::mutex ctx_mutex_;
67 std::vector<epoll_event> events_;
Definition EpollProactor.hpp:10
~EpollProactor() override
Definition EpollProactor.cpp:18
void async_write(socket_t fd, const void *buffer, size_t size, std::function< void(ssize_t)> callback) override
Definition EpollProactor.cpp:63
void async_connect(socket_t fd, const sockaddr_in &addr, std::function< void(int)> callback) override
Definition EpollProactor.cpp:113
void async_read(socket_t fd, void *buffer, size_t size, std::function< void(ssize_t)> callback) override
Definition EpollProactor.cpp:52
EpollProactor()
Definition EpollProactor.cpp:11
void async_accept(socket_t fd, std::function< void(socket_t, sockaddr_in)> callback) override
Definition EpollProactor.cpp:104
void async_sendfile(socket_t out_fd, int in_fd, off_t offset, size_t count, std::function< void(ssize_t)> callback) override
Definition EpollProactor.cpp:92
void run_once(int timeout_ms) override
Definition EpollProactor.cpp:142
void remove(socket_t fd) override
Definition EpollProactor.cpp:131
void async_wait_write(socket_t fd, std::function< void()> callback) override
Definition EpollProactor.cpp:83
void async_wait_read(socket_t fd, std::function< void()> callback) override
Definition EpollProactor.cpp:74
Definition Proactor.hpp:8
Definition ResponseWriter.hpp:7
int socket_t
Definition PlatformSocket.hpp:36
::ssize_t ssize_t
Definition PlatformSocket.hpp:41