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#ifndef CORE_SELECT_DESCRIPTOREVENTPUBLISHER_H
43#define CORE_SELECT_DESCRIPTOREVENTPUBLISHER_H
45#include "core/DescriptorEventPublisher.h"
47#ifndef DOXYGEN_SHOULD_SKIP_THIS
49#include "core/system/select.h"
55namespace core::multiplexer::
select {
63 int isSet(
int fd)
const;
78 void muxDel(
int fd)
override;
virtual void spanActiveEvents()=0
std::array< DescriptorEventPublisher *, 3 > descriptorEventPublishers
EventMultiplexer(DescriptorEventPublisher *readDescriptorEventPublisher, DescriptorEventPublisher *writeDescriptorEventPublisher, DescriptorEventPublisher *exceptionDescriptorEventPublisher)
void muxOff(core::DescriptorEventReceiver *eventReceiver) override
void spanActiveEvents() override
void muxOn(core::DescriptorEventReceiver *eventReceiver) override
void muxAdd(core::DescriptorEventReceiver *eventReceiver) override
void muxDel(int fd) override
DescriptorEventPublisher(const std::string &name, FdSet &fdSet)
void spanActiveEvents(int activeDescriptorCount) override
~EventMultiplexer() override=default
int monitorDescriptors(utils::Timeval &tickTimeOut, const sigset_t &sigMask) override
timespec getTimespec() const
int pselect(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timespec *timeout, const sigset_t *sigMask)