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

#include <DescriptorEventPublisher.h>

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

Public Member Functions

 DescriptorEventPublisher (const std::string &name, FdSet &fdSet)
 
- 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

FdSetfdSet
 

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 50 of file DescriptorEventPublisher.h.

Constructor & Destructor Documentation

◆ DescriptorEventPublisher()

core::multiplexer::select::DescriptorEventPublisher::DescriptorEventPublisher ( const std::string & name,
FdSet & fdSet )

Member Function Documentation

◆ muxAdd()

void core::multiplexer::select::DescriptorEventPublisher::muxAdd ( core::DescriptorEventReceiver * eventReceiver)
overrideprivatevirtual

Implements core::DescriptorEventPublisher.

Definition at line 65 of file DescriptorEventPublisher.cpp.

References fdSet, core::DescriptorEventReceiver::getRegisteredFd(), and core::multiplexer::select::FdSet::set().

Here is the call graph for this function:

◆ muxDel()

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

Implements core::DescriptorEventPublisher.

Definition at line 69 of file DescriptorEventPublisher.cpp.

References core::multiplexer::select::FdSet::clr(), and fdSet.

Here is the call graph for this function:

◆ muxOff()

void core::multiplexer::select::DescriptorEventPublisher::muxOff ( core::DescriptorEventReceiver * eventReceiver)
overrideprivatevirtual

Implements core::DescriptorEventPublisher.

Definition at line 77 of file DescriptorEventPublisher.cpp.

77 {
78 fdSet.clr(eventReceiver->getRegisteredFd());
79 }

References core::multiplexer::select::FdSet::clr(), fdSet, and core::DescriptorEventReceiver::getRegisteredFd().

Here is the call graph for this function:

◆ muxOn()

void core::multiplexer::select::DescriptorEventPublisher::muxOn ( core::DescriptorEventReceiver * eventReceiver)
overrideprivatevirtual

Implements core::DescriptorEventPublisher.

Definition at line 73 of file DescriptorEventPublisher.cpp.

73 {
74 fdSet.set(eventReceiver->getRegisteredFd());
75 }

References fdSet, core::DescriptorEventReceiver::getRegisteredFd(), and core::multiplexer::select::FdSet::set().

Here is the call graph for this function:

◆ spanActiveEvents()

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

Implements core::DescriptorEventPublisher.

Definition at line 81 of file DescriptorEventPublisher.cpp.

81 {
82 for (auto& [fd, eventReceivers] : observedEventReceiverLists) {
83 if (fdSet.isSet(fd) != 0) {
84 core::DescriptorEventReceiver* eventReceiver = eventReceivers.front();
86 eventReceiver->span();
87 }
88 }
89 }
std::map< int, std::list< DescriptorEventReceiver * > > observedEventReceiverLists

Member Data Documentation

◆ fdSet

FdSet& core::multiplexer::select::DescriptorEventPublisher::fdSet
private

Definition at line 62 of file DescriptorEventPublisher.h.

Referenced by DescriptorEventPublisher(), muxAdd(), muxDel(), muxOff(), and muxOn().


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