2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
42#include "core/multiplexer/epoll/EventMultiplexer.h"
44#include "core/multiplexer/epoll/DescriptorEventPublisher.h"
46#ifndef DOXYGEN_SHOULD_SKIP_THIS
48#include "log/Logger.h"
49#include "utils/Timeval.h"
58 return eventMultiplexer;
61namespace core::multiplexer::
epoll {
67 EPOLLIN | EPOLLHUP | EPOLLRDHUP | EPOLLERR
),
78 event.events = EPOLLIN;
89 LOG(DEBUG) <<
"Core::multiplexer: epoll";
97 for (
int i = 0; i < activeDescriptorCount; i++) {
virtual void spanActiveEvents()=0
std::array< DescriptorEventPublisher *, 3 > descriptorEventPublishers
EventMultiplexer(DescriptorEventPublisher *readDescriptorEventPublisher, DescriptorEventPublisher *writeDescriptorEventPublisher, DescriptorEventPublisher *exceptionDescriptorEventPublisher)
DescriptorEventPublisher(const std::string &name, int &epfd, uint32_t events, uint32_t revents)
void spanActiveEvents(int activeDescriptorCount) override
epoll_event ePollEvents[3]
int monitorDescriptors(utils::Timeval &tickTimeout, const sigset_t &sigMask) override
int epoll_pwait(int epfd, struct epoll_event *events, int maxevents, int timeout, const sigset_t *sigMask)
int epoll_create1(int flags)
int epoll_ctl(int epfd, int op, int fd, epoll_event *event)