|
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 68 of file EventMultiplexer.h.
| core::EventMultiplexer::EventMultiplexer | ( | DescriptorEventPublisher * | readDescriptorEventPublisher, |
| DescriptorEventPublisher * | writeDescriptorEventPublisher, | ||
| DescriptorEventPublisher * | exceptionDescriptorEventPublisher | ||
| ) |
Definition at line 63 of file EventMultiplexer.cpp.
References descriptorEventPublishers.
Referenced by core::multiplexer::epoll::EventMultiplexer::EventMultiplexer(), and core::multiplexer::select::EventMultiplexer::EventMultiplexer().
|
virtual |
Reimplemented in core::multiplexer::epoll::EventMultiplexer, core::multiplexer::poll::EventMultiplexer, and core::multiplexer::select::EventMultiplexer.
Definition at line 70 of file EventMultiplexer.cpp.
References descriptorEventPublishers, and timerEventPublisher.
|
delete |
|
private |
Definition at line 166 of file EventMultiplexer.cpp.
References core::DescriptorEventPublisher::checkTimedOutEvents(), and descriptorEventPublishers.
Referenced by tick().
| void core::EventMultiplexer::clearEventQueue | ( | ) |
Definition at line 128 of file EventMultiplexer.cpp.
References core::EventMultiplexer::EventQueue::clear(), and eventQueue.
Referenced by core::EventLoop::tick().
|
private |
Definition at line 162 of file EventMultiplexer.cpp.
References eventQueue, and core::EventMultiplexer::EventQueue::execute().
Referenced by tick().
| DescriptorEventPublisher & core::EventMultiplexer::getDescriptorEventPublisher | ( | DISP_TYPE | dispType | ) |
Definition at line 77 of file EventMultiplexer.cpp.
References descriptorEventPublishers.
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 180 of file EventMultiplexer.cpp.
References descriptorEventPublishers, core::EventMultiplexer::EventQueue::empty(), eventQueue, core::TimerEventPublisher::getNextTimeout(), core::DescriptorEventPublisher::getNextTimeout(), core::DescriptorEventReceiver::TIMEOUT::MAX, utils::Timeval::operator=(), timerEventPublisher, and utils::Timeval::Timeval().
Referenced by waitForEvents().
| core::TimerEventPublisher & core::EventMultiplexer::getTimerEventPublisher | ( | ) |
Definition at line 81 of file EventMultiplexer.cpp.
References timerEventPublisher.
Referenced by core::TimerEventReceiver::TimerEventReceiver().
|
protected |
Definition at line 205 of file EventMultiplexer.cpp.
References descriptorEventPublishers, and core::DescriptorEventPublisher::maxFd().
Referenced by core::multiplexer::select::EventMultiplexer::monitorDescriptors().
|
privatepure virtual |
Implemented in core::multiplexer::epoll::EventMultiplexer, core::multiplexer::poll::EventMultiplexer, and core::multiplexer::select::EventMultiplexer.
Referenced by waitForEvents().
|
private |
Definition at line 196 of file EventMultiplexer.cpp.
References descriptorEventPublishers, and core::DescriptorEventPublisher::getObservedEventReceiverCount().
Referenced by waitForEvents().
|
delete |
| void core::EventMultiplexer::relax | ( | core::Event * | event | ) |
Definition at line 89 of file EventMultiplexer.cpp.
References eventQueue, and core::EventMultiplexer::EventQueue::remove().
Referenced by core::Event::relax().
|
private |
Definition at line 172 of file EventMultiplexer.cpp.
References descriptorEventPublishers, core::DynamicLoader::execDlCloseDeleyed(), core::DescriptorEventPublisher::releaseDisabledEvents(), timerEventPublisher, and core::TimerEventPublisher::unobserveDisableEvents().
Referenced by signal(), terminate(), and tick().
| void core::EventMultiplexer::signal | ( | int | sigNum | ) |
Definition at line 110 of file EventMultiplexer.cpp.
References utils::Timeval::currentTime(), descriptorEventPublishers, releaseExpiredResources(), core::DescriptorEventPublisher::signal(), core::TimerEventPublisher::stop(), and timerEventPublisher.
Referenced by core::EventLoop::free().
| void core::EventMultiplexer::span | ( | core::Event * | event | ) |
Definition at line 85 of file EventMultiplexer.cpp.
References eventQueue, and core::EventMultiplexer::EventQueue::insert().
Referenced by core::Event::span().
|
private |
Definition at line 157 of file EventMultiplexer.cpp.
References core::TimerEventPublisher::spanActiveEvents(), 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 119 of file EventMultiplexer.cpp.
References utils::Timeval::currentTime(), descriptorEventPublishers, core::DescriptorEventPublisher::disable(), releaseExpiredResources(), core::TimerEventPublisher::stop(), and timerEventPublisher.
Referenced by core::EventLoop::free().
| TickStatus core::EventMultiplexer::tick | ( | const utils::Timeval & | tickTimeOut, |
| const sigset_t & | sigMask | ||
| ) |
Definition at line 93 of file EventMultiplexer.cpp.
References checkTimedOutEvents(), utils::Timeval::currentTime(), executeEventQueue(), releaseExpiredResources(), spanActiveEvents(), core::SUCCESS, and waitForEvents().
Referenced by core::EventLoop::_tick().
|
private |
Definition at line 132 of file EventMultiplexer.cpp.
References core::TimerEventPublisher::empty(), core::EventMultiplexer::EventQueue::empty(), eventQueue, getNextTimeout(), core::INTERRUPTED, monitorDescriptors(), core::NOOBSERVER, observedEventReceiverCount(), core::SUCCESS, timerEventPublisher, and core::TRACE.
Referenced by tick().
|
protected |
Definition at line 139 of file EventMultiplexer.h.
Referenced by checkTimedOutEvents(), core::multiplexer::epoll::EventMultiplexer::EventMultiplexer(), EventMultiplexer(), getDescriptorEventPublisher(), getNextTimeout(), maxFd(), observedEventReceiverCount(), releaseExpiredResources(), signal(), core::multiplexer::poll::EventMultiplexer::spanActiveEvents(), core::multiplexer::select::EventMultiplexer::spanActiveEvents(), terminate(), and ~EventMultiplexer().
|
private |
Definition at line 146 of file EventMultiplexer.h.
Referenced by clearEventQueue(), executeEventQueue(), getNextTimeout(), relax(), span(), and waitForEvents().
|
private |
Definition at line 144 of file EventMultiplexer.h.
Referenced by getNextTimeout(), getTimerEventPublisher(), releaseExpiredResources(), signal(), spanActiveEvents(), terminate(), waitForEvents(), and ~EventMultiplexer().