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 213 of file EventMultiplexer.cpp.

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

References executeQueue, and publishQueue.

◆ ~EventQueue()

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

Definition at line 218 of file EventMultiplexer.cpp.

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

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 245 of file EventMultiplexer.cpp.

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

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 241 of file EventMultiplexer.cpp.

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

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 231 of file EventMultiplexer.cpp.

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

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 223 of file EventMultiplexer.cpp.

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

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 227 of file EventMultiplexer.cpp.

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

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: