Simplified XF 1.1.0
Public Member Functions | Protected Types | Protected Attributes | List of all members
XFEventQueue Class Reference

Default Qt implementation for the XFEventQueue interface. More...

#include <eventqueue.h>

Inheritance diagram for XFEventQueue:
Inheritance graph
Collaboration diagram for XFEventQueue:
Collaboration graph

Public Member Functions

bool empty () const override
 Returns true if no event is in the queue. More...
 
bool push (const XFEvent *pEvent, bool fromISR=false) override
 Pushes the given event onto the queue. Returns false if the event could not be pushed. More...
 
const XFEventfront () override
 Returns pointer to next event to pop. More...
 
void pop () override
 Pops the next event from the queue. More...
 
bool pend () override
 Wait for the next event to arrive. Returns true if an event is in the queue. More...
 
bool empty () const override
 Returns true if no event is in the queue. More...
 
bool push (const XFEvent *pEvent, bool fromISR=false) override
 Pushes the given event onto the queue. More...
 
const XFEventfront () override
 Returns pointer to next event to pop. More...
 
void pop () override
 Pops the next event from the queue. More...
 
bool pend () override
 Wait for the next event to arrive. Returns true if an event is in the queue. More...
 

Protected Types

typedef QQueue< const XFEvent * > EventQueue
 Type of the event queue.
 
typedef std::queue< const XFEvent * > EventQueue
 Type of the event queue.
 

Protected Attributes

QMutex mutex_
 Mutex (non-recursive) protecting access to _queue.
 
QWaitCondition newEvents_
 Wait condition to let thread wait until a new event arrives.
 
EventQueue queue_
 Internal queue holding the events.
 
Mutex mutex_
 Mutex protecting access to queue_.
 

Detailed Description

Default Qt implementation for the XFEventQueue interface.

Default implementation of the event queue using a std::queue as container.

This class does not provide a blocking pend() method. This means that this class can be used in an IDF, but is not the right choice for a RTOS based XF.

Constructor & Destructor Documentation

◆ ~XFEventQueue() [1/2]

XFEventQueue::~XFEventQueue ( )
overridevirtual

Reimplemented from interface::XFEventQueue.

◆ ~XFEventQueue() [2/2]

virtual XFEventQueue::~XFEventQueue ( )
virtual

Reimplemented from interface::XFEventQueue.

Member Function Documentation

◆ empty() [1/2]

bool XFEventQueue::empty ( ) const
overridevirtual

Returns true if no event is in the queue.

Implements interface::XFEventQueue.

◆ empty() [2/2]

bool XFEventQueue::empty ( ) const
overridevirtual

Returns true if no event is in the queue.

Implements interface::XFEventQueue.

◆ front() [1/2]

const XFEvent * XFEventQueue::front ( )
overridevirtual

Returns pointer to next event to pop.

Implements interface::XFEventQueue.

◆ front() [2/2]

const XFEvent * XFEventQueue::front ( )
overridevirtual

Returns pointer to next event to pop.

Implements interface::XFEventQueue.

◆ pend() [1/2]

bool XFEventQueue::pend ( )
overridevirtual

Wait for the next event to arrive. Returns true if an event is in the queue.

Implements interface::XFEventQueue.

◆ pend() [2/2]

bool XFEventQueue::pend ( )
overridevirtual

Wait for the next event to arrive. Returns true if an event is in the queue.

Implements interface::XFEventQueue.

◆ pop() [1/2]

void XFEventQueue::pop ( )
overridevirtual

Pops the next event from the queue.

Implements interface::XFEventQueue.

◆ pop() [2/2]

void XFEventQueue::pop ( )
overridevirtual

Pops the next event from the queue.

Implements interface::XFEventQueue.

◆ push() [1/2]

bool XFEventQueue::push ( const XFEvent pEvent,
bool  fromISR = false 
)
overridevirtual

Pushes the given event onto the queue. Returns false if the event could not be pushed.

Implements interface::XFEventQueue.

◆ push() [2/2]

bool XFEventQueue::push ( const XFEvent pEvent,
bool  fromISR = false 
)
overridevirtual

Pushes the given event onto the queue.

Implements interface::XFEventQueue.


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