SNode.C
Loading...
Searching...
No Matches
core::multiplexer::epoll::DescriptorEventPublisher Class Reference

#include <DescriptorEventPublisher.h>

Inheritance diagram for core::multiplexer::epoll::DescriptorEventPublisher:
Collaboration diagram for core::multiplexer::epoll::DescriptorEventPublisher:

Classes

class  EPollEvents
 

Public Member Functions

 DescriptorEventPublisher (const std::string &name, int &epfd, uint32_t events, uint32_t revents)
 
- Public Member Functions inherited from core::DescriptorEventPublisher
 DescriptorEventPublisher ()=delete
 
virtual ~DescriptorEventPublisher ()
 
 DescriptorEventPublisher (const DescriptorEventPublisher &)=delete
 
DescriptorEventPublisheroperator= (const DescriptorEventPublisher &)=delete
 
void enable (DescriptorEventReceiver *descriptorEventReceiver)
 
void disable (DescriptorEventReceiver *descriptorEventReceiver)
 
void suspend (DescriptorEventReceiver *descriptorEventReceiver)
 
void resume (DescriptorEventReceiver *descriptorEventReceiver)
 
void checkTimedOutEvents (const utils::Timeval &currentTime)
 
void releaseDisabledEvents (const utils::Timeval &currentTime)
 
int getObservedEventReceiverCount () const
 
int maxFd () const
 
utils::Timeval getNextTimeout (const utils::Timeval &currentTime) const
 
void signal (int sigNum)
 
void disable ()
 
const std::string & getName () const
 

Private Member Functions

void muxAdd (core::DescriptorEventReceiver *eventReceiver) override
 
void muxDel (int fd) override
 
void muxOn (core::DescriptorEventReceiver *eventReceiver) override
 
void muxOff (core::DescriptorEventReceiver *eventReceiver) override
 
void spanActiveEvents () override
 

Private Attributes

EPollEvents ePollEvents
 
uint32_t revents
 

Additional Inherited Members

- Protected Member Functions inherited from core::DescriptorEventPublisher
 DescriptorEventPublisher (std::string name)
 
- Protected Attributes inherited from core::DescriptorEventPublisher
std::map< int, std::list< DescriptorEventReceiver * > > observedEventReceiverLists
 
unsigned long eventCounter = 0
 

Detailed Description

Definition at line 63 of file DescriptorEventPublisher.h.

Constructor & Destructor Documentation

◆ DescriptorEventPublisher()

core::multiplexer::epoll::DescriptorEventPublisher::DescriptorEventPublisher ( const std::string &  name,
int &  epfd,
uint32_t  events,
uint32_t  revents 
)

Definition at line 123 of file DescriptorEventPublisher.cpp.

References core::DescriptorEventPublisher::DescriptorEventPublisher(), core::multiplexer::epoll::DescriptorEventPublisher::EPollEvents::EPollEvents(), ePollEvents, and revents.

Referenced by core::multiplexer::epoll::EventMultiplexer::EventMultiplexer().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ muxAdd()

void core::multiplexer::epoll::DescriptorEventPublisher::muxAdd ( core::DescriptorEventReceiver eventReceiver)
overrideprivatevirtual

Implements core::DescriptorEventPublisher.

Definition at line 129 of file DescriptorEventPublisher.cpp.

129 {
130 ePollEvents.muxAdd(eventReceiver);
131 }
void muxAdd(core::DescriptorEventReceiver *eventReceiver)

References ePollEvents, and core::multiplexer::epoll::DescriptorEventPublisher::EPollEvents::muxAdd().

Here is the call graph for this function:

◆ muxDel()

void core::multiplexer::epoll::DescriptorEventPublisher::muxDel ( int  fd)
overrideprivatevirtual

Implements core::DescriptorEventPublisher.

Definition at line 133 of file DescriptorEventPublisher.cpp.

References ePollEvents, and core::multiplexer::epoll::DescriptorEventPublisher::EPollEvents::muxDel().

Here is the call graph for this function:

◆ muxOff()

void core::multiplexer::epoll::DescriptorEventPublisher::muxOff ( core::DescriptorEventReceiver eventReceiver)
overrideprivatevirtual

Implements core::DescriptorEventPublisher.

Definition at line 141 of file DescriptorEventPublisher.cpp.

141 {
142 ePollEvents.muxOff(eventReceiver);
143 }

References ePollEvents, and core::multiplexer::epoll::DescriptorEventPublisher::EPollEvents::muxOff().

Here is the call graph for this function:

◆ muxOn()

void core::multiplexer::epoll::DescriptorEventPublisher::muxOn ( core::DescriptorEventReceiver eventReceiver)
overrideprivatevirtual

Implements core::DescriptorEventPublisher.

Definition at line 137 of file DescriptorEventPublisher.cpp.

137 {
138 ePollEvents.muxOn(eventReceiver);
139 }

References ePollEvents, and core::multiplexer::epoll::DescriptorEventPublisher::EPollEvents::muxOn().

Here is the call graph for this function:

◆ spanActiveEvents()

void core::multiplexer::epoll::DescriptorEventPublisher::spanActiveEvents ( )
overrideprivatevirtual

Implements core::DescriptorEventPublisher.

Definition at line 145 of file DescriptorEventPublisher.cpp.

145 {
147
148 for (int i = 0; i < count; i++) {
149 const epoll_event& ev = ePollEvents.getEvents()[i];
150 core::DescriptorEventReceiver* eventReceiver = static_cast<core::DescriptorEventReceiver*>(ev.data.ptr);
151 if (eventReceiver != nullptr && (ev.events & revents) != 0) {
152 eventCounter++;
153 eventReceiver->span();
154 }
155 }
156 }
int epoll_wait(int epfd, epoll_event *events, int maxevents, int timeout)
Definition epoll.cpp:57

References core::system::epoll_wait(), ePollEvents, core::DescriptorEventPublisher::eventCounter, core::multiplexer::epoll::DescriptorEventPublisher::EPollEvents::getEPFd(), core::multiplexer::epoll::DescriptorEventPublisher::EPollEvents::getEvents(), core::multiplexer::epoll::DescriptorEventPublisher::EPollEvents::getInterestCount(), revents, and core::EventReceiver::span().

Here is the call graph for this function:

Member Data Documentation

◆ ePollEvents

EPollEvents core::multiplexer::epoll::DescriptorEventPublisher::ePollEvents
private

◆ revents

uint32_t core::multiplexer::epoll::DescriptorEventPublisher::revents
private

Definition at line 103 of file DescriptorEventPublisher.h.

Referenced by DescriptorEventPublisher(), and spanActiveEvents().


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