SNode.C
|
#include <EventMultiplexer.h>
Classes | |
class | EventQueue |
Public Types | |
enum | DISP_TYPE { RD = 0 , WR = 1 , EX = 2 } |
Public Member Functions | |
EventMultiplexer (DescriptorEventPublisher *readDescriptorEventPublisher, DescriptorEventPublisher *writeDescriptorEventPublisher, DescriptorEventPublisher *exceptionDescriptorEventPublisher) | |
virtual | ~EventMultiplexer () |
EventMultiplexer (const EventMultiplexer &)=delete | |
EventMultiplexer & | operator= (const EventMultiplexer &)=delete |
DescriptorEventPublisher & | getDescriptorEventPublisher (DISP_TYPE dispType) |
TimerEventPublisher & | getTimerEventPublisher () |
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) |
Protected Member Functions | |
int | maxFd () |
Protected Attributes | |
std::array< DescriptorEventPublisher *, 3 > | descriptorEventPublishers |
Private Member Functions | |
TickStatus | waitForEvents (const utils::Timeval &tickTimeOut, const utils::Timeval ¤tTime, const sigset_t &sigMask, int &activeDescriptorCount) |
void | spanActiveEvents (const utils::Timeval ¤tTime, int activeDescriptorCount) |
void | executeEventQueue (const utils::Timeval ¤tTime) |
void | checkTimedOutEvents (const utils::Timeval ¤tTime) |
void | releaseExpiredResources (const utils::Timeval ¤tTime) |
utils::Timeval | getNextTimeout (const utils::Timeval ¤tTime) |
virtual void | spanActiveEvents (int activeDescriptorCount)=0 |
virtual int | monitorDescriptors (utils::Timeval &tickTimeOut, const sigset_t &sigMask)=0 |
int | observedEventReceiverCount () |
Private Attributes | |
core::TimerEventPublisher *const | timerEventPublisher |
EventQueue | eventQueue |
Definition at line 46 of file EventMultiplexer.h.
core::EventMultiplexer::EventMultiplexer | ( | DescriptorEventPublisher * | readDescriptorEventPublisher, |
DescriptorEventPublisher * | writeDescriptorEventPublisher, | ||
DescriptorEventPublisher * | exceptionDescriptorEventPublisher ) |
Definition at line 41 of file EventMultiplexer.cpp.
References EventMultiplexer().
Referenced by EventMultiplexer().
|
virtual |
Reimplemented in core::multiplexer::epoll::EventMultiplexer, core::multiplexer::poll::EventMultiplexer, and core::multiplexer::select::EventMultiplexer.
Definition at line 48 of file EventMultiplexer.cpp.
References timerEventPublisher.
|
delete |
|
private |
Definition at line 144 of file EventMultiplexer.cpp.
Referenced by tick().
void core::EventMultiplexer::clearEventQueue | ( | ) |
Definition at line 106 of file EventMultiplexer.cpp.
|
private |
Definition at line 140 of file EventMultiplexer.cpp.
Referenced by tick().
DescriptorEventPublisher & core::EventMultiplexer::getDescriptorEventPublisher | ( | DISP_TYPE | dispType | ) |
Definition at line 55 of file EventMultiplexer.cpp.
Referenced by core::eventreceiver::AcceptEventReceiver::AcceptEventReceiver(), core::eventreceiver::ConnectEventReceiver::ConnectEventReceiver(), core::eventreceiver::ExceptionalConditionEventReceiver::ExceptionalConditionEventReceiver(), core::eventreceiver::ReadEventReceiver::ReadEventReceiver(), and core::eventreceiver::WriteEventReceiver::WriteEventReceiver().
|
private |
Definition at line 158 of file EventMultiplexer.cpp.
References core::TimerEventPublisher::getNextTimeout(), core::DescriptorEventReceiver::TIMEOUT::MAX, utils::Timeval::operator=(), timerEventPublisher, and utils::Timeval::Timeval().
Referenced by waitForEvents().
core::TimerEventPublisher & core::EventMultiplexer::getTimerEventPublisher | ( | ) |
Definition at line 59 of file EventMultiplexer.cpp.
References timerEventPublisher.
|
protected |
Definition at line 183 of file EventMultiplexer.cpp.
|
privatepure virtual |
Implemented in core::multiplexer::epoll::EventMultiplexer, core::multiplexer::poll::EventMultiplexer, and core::multiplexer::select::EventMultiplexer.
Referenced by waitForEvents().
|
private |
Definition at line 174 of file EventMultiplexer.cpp.
|
delete |
void core::EventMultiplexer::relax | ( | core::Event * | event | ) |
Definition at line 67 of file EventMultiplexer.cpp.
Referenced by core::Event::relax().
|
private |
Definition at line 150 of file EventMultiplexer.cpp.
References core::DynamicLoader::execDlCloseDeleyed(), timerEventPublisher, and core::TimerEventPublisher::unobserveDisableEvents().
Referenced by signal(), terminate(), and tick().
void core::EventMultiplexer::signal | ( | int | sigNum | ) |
Definition at line 88 of file EventMultiplexer.cpp.
References utils::Timeval::currentTime(), releaseExpiredResources(), core::TimerEventPublisher::stop(), and timerEventPublisher.
void core::EventMultiplexer::span | ( | core::Event * | event | ) |
Definition at line 63 of file EventMultiplexer.cpp.
Referenced by core::Event::span().
|
private |
Definition at line 135 of file EventMultiplexer.cpp.
References spanActiveEvents(), core::TimerEventPublisher::spanActiveEvents(), and timerEventPublisher.
Referenced by tick().
|
privatepure virtual |
Implemented in core::multiplexer::epoll::EventMultiplexer, core::multiplexer::poll::EventMultiplexer, and core::multiplexer::select::EventMultiplexer.
Referenced by spanActiveEvents().
void core::EventMultiplexer::terminate | ( | ) |
Definition at line 97 of file EventMultiplexer.cpp.
References utils::Timeval::currentTime(), releaseExpiredResources(), core::TimerEventPublisher::stop(), and timerEventPublisher.
TickStatus core::EventMultiplexer::tick | ( | const utils::Timeval & | tickTimeOut, |
const sigset_t & | sigMask ) |
Definition at line 71 of file EventMultiplexer.cpp.
References checkTimedOutEvents(), utils::Timeval::currentTime(), executeEventQueue(), releaseExpiredResources(), spanActiveEvents(), core::SUCCESS, and waitForEvents().
|
private |
Definition at line 110 of file EventMultiplexer.cpp.
References getNextTimeout(), core::INTERRUPTED, monitorDescriptors(), core::NOOBSERVER, core::SUCCESS, and core::TRACE.
Referenced by tick().
|
protected |
Definition at line 117 of file EventMultiplexer.h.
|
private |
Definition at line 124 of file EventMultiplexer.h.
|
private |
Definition at line 122 of file EventMultiplexer.h.
Referenced by getNextTimeout(), getTimerEventPublisher(), releaseExpiredResources(), signal(), spanActiveEvents(), terminate(), and ~EventMultiplexer().