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/DescriptorEventPublisher.h"
44#include "core/DescriptorEventReceiver.h"
46#ifndef DOXYGEN_SHOULD_SKIP_THIS
48#include "utils/PreserveErrno.h"
54namespace core::multiplexer::
epoll {
66 epoll_event ePollEvent{};
68 ePollEvent.data.ptr = eventReceiver;
69 ePollEvent.events =
events;
77 }
else if (errno == EEXIST) {
98 epoll_event ePollEvent{events, {eventReceiver}};
148 for (
int i = 0; i < count; i++) {
151 if (eventReceiver !=
nullptr && (ev.events &
revents) != 0) {
DescriptorEventPublisher(std::string name)
unsigned long eventCounter
int getRegisteredFd() const
int getInterestCount() const
std::vector< epoll_event > ePollEvents
EPollEvents(int &epfd, uint32_t event)
void muxOn(core::DescriptorEventReceiver *eventReceiver)
std::vector< epoll_event >::size_type interestCount
void muxAdd(core::DescriptorEventReceiver *eventReceiver)
epoll_event * getEvents()
void muxMod(int fd, uint32_t events, core::DescriptorEventReceiver *eventReceiver) const
void muxOff(core::DescriptorEventReceiver *eventReceiver)
void muxAdd(core::DescriptorEventReceiver *eventReceiver) override
DescriptorEventPublisher(const std::string &name, int &epfd, uint32_t events, uint32_t revents)
void muxOff(core::DescriptorEventReceiver *eventReceiver) override
void muxDel(int fd) override
void spanActiveEvents() override
void muxOn(core::DescriptorEventReceiver *eventReceiver) override
int epoll_create1(int flags)
int epoll_ctl(int epfd, int op, int fd, epoll_event *event)
int epoll_wait(int epfd, epoll_event *events, int maxevents, int timeout)