SNode.C
Loading...
Searching...
No Matches
core::EventMultiplexer::EventQueue Class Reference
Collaboration diagram for core::EventMultiplexer::EventQueue:

Public Member Functions

 EventQueue ()
 
 ~EventQueue ()
 
 EventQueue (const EventQueue &)=delete
 
 EventQueue (EventQueue &&)=delete
 
EventQueueoperator= (const EventQueue &)=delete
 
EventQueueoperator= (EventQueue &&)=delete
 
void insert (Event *event)
 
void remove (Event *event)
 
void execute (const utils::Timeval &currentTime)
 
bool empty () const
 
void clear ()
 

Private Attributes

std::list< Event * > * executeQueue
 
std::list< Event * > * publishQueue
 

Detailed Description

Definition at line 80 of file EventMultiplexer.h.

Constructor & Destructor Documentation

◆ EventQueue() [1/3]

core::EventMultiplexer::EventQueue::EventQueue ( )

Definition at line 214 of file EventMultiplexer.cpp.

215 : executeQueue(new std::list<Event*>())
216 , publishQueue(new std::list<Event*>()) {
217 }
std::list< Event * > * publishQueue
std::list< Event * > * executeQueue

References executeQueue, and publishQueue.

◆ ~EventQueue()

core::EventMultiplexer::EventQueue::~EventQueue ( )

Definition at line 219 of file EventMultiplexer.cpp.

219 {
220 delete executeQueue;
221 delete publishQueue;
222 }

References executeQueue, and publishQueue.

◆ EventQueue() [2/3]

core::EventMultiplexer::EventQueue::EventQueue ( const EventQueue )
delete

◆ EventQueue() [3/3]

core::EventMultiplexer::EventQueue::EventQueue ( EventQueue &&  )
delete

Member Function Documentation

◆ clear()

void core::EventMultiplexer::EventQueue::clear ( )

Definition at line 246 of file EventMultiplexer.cpp.

246 {
247 std::swap(executeQueue, publishQueue);
248
249 for (const Event* event : *executeQueue) {
250 event->getEventReceiver()->destruct();
251 }
252
253 executeQueue->clear();
254 }

References core::EventReceiver::destruct(), executeQueue, core::Event::getEventReceiver(), and publishQueue.

Referenced by core::EventMultiplexer::clearEventQueue().

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

◆ empty()

bool core::EventMultiplexer::EventQueue::empty ( ) const

Definition at line 242 of file EventMultiplexer.cpp.

242 {
243 return publishQueue->empty();
244 }

References publishQueue.

Referenced by core::EventMultiplexer::getNextTimeout(), and core::EventMultiplexer::waitForEvents().

Here is the caller graph for this function:

◆ execute()

void core::EventMultiplexer::EventQueue::execute ( const utils::Timeval currentTime)

Definition at line 232 of file EventMultiplexer.cpp.

232 {
233 std::swap(executeQueue, publishQueue);
234
235 for (Event* event : *executeQueue) {
236 event->dispatch(currentTime);
237 }
238
239 executeQueue->clear();
240 }

References core::Event::dispatch(), executeQueue, and publishQueue.

Referenced by core::EventMultiplexer::executeEventQueue().

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

◆ insert()

void core::EventMultiplexer::EventQueue::insert ( Event event)

Definition at line 224 of file EventMultiplexer.cpp.

224 {
225 publishQueue->push_back(event); // do not allow two or more same events in one tick
226 }

References publishQueue.

Referenced by core::EventMultiplexer::span().

Here is the caller graph for this function:

◆ operator=() [1/2]

EventQueue & core::EventMultiplexer::EventQueue::operator= ( const EventQueue )
delete

◆ operator=() [2/2]

EventQueue & core::EventMultiplexer::EventQueue::operator= ( EventQueue &&  )
delete

◆ remove()

void core::EventMultiplexer::EventQueue::remove ( Event event)

Definition at line 228 of file EventMultiplexer.cpp.

228 {
229 publishQueue->remove(event); // in case of erase remove the event from the published queue
230 }

References publishQueue.

Referenced by core::EventMultiplexer::relax().

Here is the caller graph for this function:

Member Data Documentation

◆ executeQueue

std::list<Event*>* core::EventMultiplexer::EventQueue::executeQueue
private

Definition at line 98 of file EventMultiplexer.h.

Referenced by clear(), EventQueue(), execute(), and ~EventQueue().

◆ publishQueue

std::list<Event*>* core::EventMultiplexer::EventQueue::publishQueue
private

Definition at line 99 of file EventMultiplexer.h.

Referenced by clear(), empty(), EventQueue(), execute(), insert(), remove(), and ~EventQueue().


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