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 56 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 73 of file EventMultiplexer.cpp.

73 {
74 const timespec timeSpec = tickTimeOut.getTimespec();
75
76 return core::system::pselect(maxFd() + 1,
80 &timeSpec,
81 &sigMask);
82 }
timespec getTimespec() const
Definition Timeval.cpp:173
int pselect(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timespec *timeout, const sigset_t *sigMask)
Definition select.cpp:57

References core::EventMultiplexer::EX, fdSets, core::multiplexer::select::FdSet::get(), utils::Timeval::getTimespec(), core::EventMultiplexer::maxFd(), core::system::pselect(), core::EventMultiplexer::RD, and core::EventMultiplexer::WR.

Here is the call graph for this function:

◆ spanActiveEvents()

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

Implements core::EventMultiplexer.

Definition at line 84 of file EventMultiplexer.cpp.

84 {
85 if (activeDescriptorCount > 0) {
86 for (core::DescriptorEventPublisher* const descriptorEventPublisher : descriptorEventPublishers) {
87 descriptorEventPublisher->spanActiveEvents();
88 }
89 }
90 }
std::array< DescriptorEventPublisher *, 3 > descriptorEventPublishers

References core::EventMultiplexer::descriptorEventPublishers, and core::DescriptorEventPublisher::spanActiveEvents().

Here is the call graph for this function:

Member Data Documentation

◆ fdSets

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

Definition at line 65 of file EventMultiplexer.h.

Referenced by EventMultiplexer(), and monitorDescriptors().


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