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

#include <EventMultiplexer.h>

Inheritance diagram for core::multiplexer::select::EventMultiplexer:
Collaboration diagram for core::multiplexer::select::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

FdSet fdSets [3]
 

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 34 of file EventMultiplexer.h.

Constructor & Destructor Documentation

◆ EventMultiplexer()

◆ ~EventMultiplexer()

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

Reimplemented from core::EventMultiplexer.

Member Function Documentation

◆ monitorDescriptors()

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

Implements core::EventMultiplexer.

Definition at line 51 of file EventMultiplexer.cpp.

51 {
52 const timespec timeSpec = tickTimeOut.getTimespec();
53
54 return core::system::pselect(maxFd() + 1,
58 &timeSpec,
59 &sigMask);
60 }
timespec getTimespec() const
Definition Timeval.cpp:151
int pselect(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timespec *timeout, const sigset_t *sigMask)
Definition select.cpp:35

◆ spanActiveEvents()

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

Implements core::EventMultiplexer.

Definition at line 62 of file EventMultiplexer.cpp.

62 {
63 if (activeDescriptorCount > 0) {
64 for (core::DescriptorEventPublisher* const descriptorEventPublisher : descriptorEventPublishers) {
65 descriptorEventPublisher->spanActiveEvents();
66 }
67 }
68 }
std::array< DescriptorEventPublisher *, 3 > descriptorEventPublishers

Member Data Documentation

◆ fdSets

FdSet core::multiplexer::select::EventMultiplexer::fdSets[3]
private

Definition at line 43 of file EventMultiplexer.h.


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