SNode.C
Loading...
Searching...
No Matches
core::multiplexer::poll::EventMultiplexer Class Reference

#include <EventMultiplexer.h>

Inheritance diagram for core::multiplexer::poll::EventMultiplexer:
Collaboration diagram for core::multiplexer::poll::EventMultiplexer:

Public Member Functions

 EventMultiplexer ()
 
 ~EventMultiplexer () override=default
 
- Public Member Functions inherited from core::EventMultiplexer
 EventMultiplexer (DescriptorEventPublisher *readDescriptorEventPublisher, DescriptorEventPublisher *writeDescriptorEventPublisher, DescriptorEventPublisher *exceptionDescriptorEventPublisher)
 
 EventMultiplexer (const EventMultiplexer &)=delete
 
EventMultiplexeroperator= (const EventMultiplexer &)=delete
 
DescriptorEventPublishergetDescriptorEventPublisher (DISP_TYPE dispType)
 
TimerEventPublishergetTimerEventPublisher ()
 
void span (core::Event *event)
 
void relax (core::Event *event)
 
void signal (int sigNum)
 
void terminate ()
 
void clearEventQueue ()
 
TickStatus tick (const utils::Timeval &tickTimeOut, const sigset_t &sigMask)
 

Private Member Functions

int monitorDescriptors (utils::Timeval &tickTimeOut, const sigset_t &sigMask) override
 
void spanActiveEvents (int activeDescriptorCount) override
 

Private Attributes

PollFdsManager pollFdsManager
 

Additional Inherited Members

- Public Types inherited from core::EventMultiplexer
enum  DISP_TYPE { RD = 0 , WR = 1 , EX = 2 }
 
- Protected Member Functions inherited from core::EventMultiplexer
int maxFd ()
 
- Protected Attributes inherited from core::EventMultiplexer
std::array< DescriptorEventPublisher *, 3 > descriptorEventPublishers
 

Detailed Description

Definition at line 68 of file EventMultiplexer.h.

Constructor & Destructor Documentation

◆ EventMultiplexer()

core::multiplexer::poll::EventMultiplexer::EventMultiplexer ( )

Definition at line 130 of file EventMultiplexer.cpp.

133 POLLIN,
134 POLLIN | POLLHUP | POLLRDHUP | POLLERR),
137 POLLOUT,
138 POLLOUT),
141 POLLPRI,
142 POLLPRI)) {
143 LOG(DEBUG) << "Core::multiplexer: poll";
144 }

◆ ~EventMultiplexer()

core::multiplexer::poll::EventMultiplexer::~EventMultiplexer ( )
overridevirtualdefault

Reimplemented from core::EventMultiplexer.

Member Function Documentation

◆ monitorDescriptors()

int core::multiplexer::poll::EventMultiplexer::monitorDescriptors ( utils::Timeval & tickTimeOut,
const sigset_t & sigMask )
overrideprivatevirtual

Implements core::EventMultiplexer.

Definition at line 146 of file EventMultiplexer.cpp.

146 {
147 const timespec timeSpec = tickTimeOut.getTimespec();
148
150 }
timespec getTimespec() const
Definition Timeval.cpp:151
int ppoll(struct pollfd *fds, nfds_t nfds, const timespec *timeout, const sigset_t *sigMask)
Definition poll.cpp:37

◆ spanActiveEvents()

void core::multiplexer::poll::EventMultiplexer::spanActiveEvents ( int activeDescriptorCount)
overrideprivatevirtual

Implements core::EventMultiplexer.

Definition at line 152 of file EventMultiplexer.cpp.

152 {
153 if (activeDescriptorCount > 0) {
154 for (core::DescriptorEventPublisher* const descriptorEventPublisher : descriptorEventPublishers) {
155 descriptorEventPublisher->spanActiveEvents();
156 }
157 }
158 }
std::array< DescriptorEventPublisher *, 3 > descriptorEventPublishers

Member Data Documentation

◆ pollFdsManager

PollFdsManager core::multiplexer::poll::EventMultiplexer::pollFdsManager
private

Definition at line 77 of file EventMultiplexer.h.


The documentation for this class was generated from the following files: