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/DescriptorEventPublisher.h"
44#include "core/DescriptorEventReceiver.h"
46#ifndef DOXYGEN_SHOULD_SKIP_THIS
48#include "utils/Timeval.h"
59 :
name(std::move(name)) {
99 dirtyDescriptEventReceiverList->remove(disabledDescriptorEventReceiver);
101 if (dirtyDescriptEventReceiverList->empty()) {
111 muxOn(activeDescriptorEventReceiver
);
113 muxOff(activeDescriptorEventReceiver
);
143 nextTimeout
= std::min(eventReceivers.front()
->getTimeout(currentTime
), nextTimeout);
virtual void muxAdd(DescriptorEventReceiver *descriptorEventReceiver)=0
utils::Timeval getNextTimeout(const utils::Timeval ¤tTime) const
void checkTimedOutEvents(const utils::Timeval ¤tTime)
virtual void muxDel(int fd)=0
virtual ~DescriptorEventPublisher()
virtual void muxOff(DescriptorEventReceiver *descriptorEventReceiver)=0
void releaseDisabledEvents(const utils::Timeval ¤tTime)
int getObservedEventReceiverCount() const
virtual void muxOn(DescriptorEventReceiver *descriptorEventReceiver)=0
void disable(DescriptorEventReceiver *descriptorEventReceiver)
DescriptorEventPublisher(std::string name)
void enable(DescriptorEventReceiver *descriptorEventReceiver)
std::map< int, std::list< DescriptorEventReceiver * > > observedEventReceiverLists
void suspend(DescriptorEventReceiver *descriptorEventReceiver)
std::map< std::list< DescriptorEventReceiver * > *, std::list< DescriptorEventReceiver * > > dirtyEventReceiverLists
const std::string & getName() const
void resume(DescriptorEventReceiver *descriptorEventReceiver)
void onSignal(int signum)
void triggered(const utils::Timeval ¤tTime)
int getRegisteredFd() const
void setEnabled(const utils::Timeval ¤tTime)
void checkTimeout(const utils::Timeval ¤tTime)
utils::Timeval getTimeout(const utils::Timeval ¤tTime) const
static Timeval currentTime()
Timeval & operator=(const Timeval &timeVal)
static const utils::Timeval MAX