WARNING: USE THIS SOFTWARE AT YOUR OWN RISK! THIS IS EXPERIMENTAL SOFTWARE NOT INTENDED FOR PRODUCTION USE! Zuble is currently an early stage prototype. As such Zuble is minimally tested and inherently unstable. It is provided for experimental, development, and demonstration purposes only. Zuble QML Types   |  Zuble C++ Classes   |  Zuble Overview
Zuble  0.1
Zuble Framework C++/QML extension API
Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Properties | List of all members
Zbl::ZMessageQueue Class Reference

A message queue that decouples sending and processing of messages. More...

#include <ZMessageQueue.h>

Inheritance diagram for Zbl::ZMessageQueue:
Inheritance graph
[legend]
Collaboration diagram for Zbl::ZMessageQueue:
Collaboration graph
[legend]

Public Types

typedef QQueue< QVariant > zMsgQueue
 

Public Slots

void sendMessage (QVariant message)
 Enqueues message and then sends messageAvailable signal immediately. More...
 
void queueMessage (QVariant message)
 Enqueues message immediately, then queues a defered messageAvailable signal to be sent later. More...
 
QVariant dequeueMessage ()
 Removes next message from message queue and returns it. More...
 
QVariant peekMessage ()
 Returns the next message from message queue without removing it from the queue. More...
 

Signals

void messageAvailable ()
 Sent when a message has been placed into the message queue. More...
 

Public Member Functions

 ZMessageQueue (QObject *parent=0)
 
int getCount ()
 
Q_INVOKABLE bool isEmpty ()
 Returns true if message queue is empty, false if one or more messages are in the queue. More...
 

Static Public Member Functions

static void registerType ()
 Registers ZMessageQueue as a QML type. More...
 

Protected Member Functions

Q_INVOKABLE void sendAvailableSignal ()
 

Protected Attributes

zMsgQueue m_q
 The message queue. More...
 

Properties

int count
 Returns the number of messages in the queue. More...
 

Detailed Description

A message queue that decouples sending and processing of messages.

The message receiver is (optionally) notified of pending messages on a subsequent QObject event dispatch. This allows the sender to return from queueing the message before the receiver processes it.

Call queueMessage() to queue a message for deferred notification to the receiver. Call sendMessage() to queue a message for immediate notification to the receiver.

ZMessageQueue is reentrant but not thread safe. The enpoints must both have the same thread affinity (ie. be in the same thread).

See also
ZMailbox ZMailslot

Definition at line 54 of file ZMessageQueue.h.

Member Typedef Documentation

◆ zMsgQueue

typedef QQueue<QVariant> Zbl::ZMessageQueue::zMsgQueue

Definition at line 60 of file ZMessageQueue.h.

Constructor & Destructor Documentation

◆ ZMessageQueue()

Zbl::ZMessageQueue::ZMessageQueue ( QObject *  parent = 0)
explicit

Definition at line 31 of file ZMessageQueue.cpp.

Member Function Documentation

◆ dequeueMessage

QVariant Zbl::ZMessageQueue::dequeueMessage ( )
slot

Removes next message from message queue and returns it.

Returns
Next message in queue or invalid variant if no messages in queue.

Definition at line 59 of file ZMessageQueue.cpp.

Referenced by Zbl::ZMailslot::getMessage(), and Zbl::ZMailslot::getResponse().

◆ getCount()

int Zbl::ZMessageQueue::getCount ( )

◆ isEmpty()

bool Zbl::ZMessageQueue::isEmpty ( )

Returns true if message queue is empty, false if one or more messages are in the queue.

Definition at line 85 of file ZMessageQueue.cpp.

◆ messageAvailable

void Zbl::ZMessageQueue::messageAvailable ( )
signal

Sent when a message has been placed into the message queue.

Referenced by sendAvailableSignal(), and Zbl::ZMailslot::ZMailslot().

◆ peekMessage

QVariant Zbl::ZMessageQueue::peekMessage ( )
slot

Returns the next message from message queue without removing it from the queue.

Returns
Next message in queue or invalid variant if no messages in queue.

Definition at line 67 of file ZMessageQueue.cpp.

Referenced by Zbl::ZMailslot::peekMessage(), and Zbl::ZMailslot::peekResponse().

◆ queueMessage

void Zbl::ZMessageQueue::queueMessage ( QVariant  message)
slot

Enqueues message immediately, then queues a defered messageAvailable signal to be sent later.

Parameters
messageA user-defined value to be placed on the message queue

Definition at line 51 of file ZMessageQueue.cpp.

Referenced by Zbl::ZMailslot::postMessage(), and Zbl::ZMailslot::postResponse().

◆ registerType()

void Zbl::ZMessageQueue::registerType ( )
static

Registers ZMessageQueue as a QML type.

Definition at line 36 of file ZMessageQueue.cpp.

Referenced by Zbl::Zblcore::registerTypes().

◆ sendAvailableSignal()

void Zbl::ZMessageQueue::sendAvailableSignal ( )
protected

Definition at line 75 of file ZMessageQueue.cpp.

Referenced by sendMessage().

◆ sendMessage

void Zbl::ZMessageQueue::sendMessage ( QVariant  message)
slot

Enqueues message and then sends messageAvailable signal immediately.

Parameters
messageA user-defined value to be placed on the message queue

Definition at line 43 of file ZMessageQueue.cpp.

Referenced by Zbl::ZMailslot::sendMessage(), and Zbl::ZMailslot::sendResponse().

Member Data Documentation

◆ m_q

zMsgQueue Zbl::ZMessageQueue::m_q
protected

The message queue.

Definition at line 134 of file ZMessageQueue.h.

Referenced by dequeueMessage(), getCount(), isEmpty(), peekMessage(), queueMessage(), and sendMessage().

Property Documentation

◆ count

int Zbl::ZMessageQueue::count
read

Returns the number of messages in the queue.

Definition at line 71 of file ZMessageQueue.h.


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