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
Signals | Public Member Functions | Static Public Member Functions | Protected Attributes | Private Slots | List of all members
Zbl::ZMailslot Class Reference

A two-way buffered message stream with attached user-defined data cache. More...

#include <ZMailslot.h>

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

Signals

void messageAvailable (QString slotName)
 Sent when a message has been placed into an endpoint's message queue. More...
 
void responseAvailable (QString slotName)
 Sent when a response has been received from an endpoint. More...
 

Public Member Functions

 ZMailslot (QObject *parent=0)
 
Q_INVOKABLE void setSlotName (const QString &name)
 Set the name of the mailslot. More...
 
Q_INVOKABLE const QString getSlotName ()
 Get the name of the mailslot. More...
 
Q_INVOKABLE void sendMessage (QVariant message)
 Enqueues message and sends messageAvailable signal immediately. More...
 
Q_INVOKABLE void postMessage (QVariant message)
 Enqueues message immediately, then posts a defered messageAvailable signal to the event queue to be sent later. More...
 
Q_INVOKABLE int messageCount ()
 Returns the number of messages in the message queue. More...
 
Q_INVOKABLE QVariant getMessage ()
 Removes next message from message queue and returns it. More...
 
Q_INVOKABLE QVariant peekMessage ()
 Returns the next message from message queue without removing it from the queue. More...
 
Q_INVOKABLE void sendResponse (QVariant response)
 Enqueues response and sends responseAvailable signal immediately. More...
 
Q_INVOKABLE void postResponse (QVariant response)
 Enqueues response immediately, then queues a defered responseAvailable signal to be sent later. More...
 
Q_INVOKABLE int responseCount ()
 Returns the number of responses in the response queue. More...
 
Q_INVOKABLE QVariant getResponse ()
 Removes next response from response queue and returns it. More...
 
Q_INVOKABLE QVariant peekResponse ()
 Returns the next response from response queue without removing it from the queue. More...
 
Q_INVOKABLE QObject * data ()
 returns a ZMap dictionary object that can be used by mailslot client to store parameters. Use of the dictionary is user defined. More...
 

Static Public Member Functions

static void registerType ()
 

Protected Attributes

ZBL_DECLARE_LOGGED_OBJECT QString m_slotName
 Name of the mail slot. More...
 
ZMessageQueue m_messageQueue
 Messages sent from mailslot owner to endpoint. More...
 
ZMessageQueue m_responseQueue
 Responses sent from endpoint to mailslot owner. More...
 
ZMapm_data
 Mailslot owner's user-defined data dictionary. More...
 

Private Slots

void onMessageQueueAvailable ()
 
void onResponseQueueAvailable ()
 

Detailed Description

A two-way buffered message stream with attached user-defined data cache.

The mailslot provides bidirectional communication between the mailslot owner and a single endpoint.

ZMailslot and ZMessageQueue are reentrant but not thread safe. The owners and enpoints must all have the same thread affinity (ie. be in the same thread).

See also
ZMailbox ZMessageQueue

Definition at line 50 of file ZMailslot.h.

Constructor & Destructor Documentation

◆ ZMailslot()

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

Definition at line 33 of file ZMailslot.cpp.

Member Function Documentation

◆ data()

QObject * Zbl::ZMailslot::data ( )

returns a ZMap dictionary object that can be used by mailslot client to store parameters. Use of the dictionary is user defined.

Definition at line 131 of file ZMailslot.cpp.

◆ getMessage()

QVariant Zbl::ZMailslot::getMessage ( )

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 103 of file ZMailslot.cpp.

◆ getResponse()

QVariant Zbl::ZMailslot::getResponse ( )

Removes next response from response queue and returns it.

Returns
Next response in queue or invalid variant if no responses in queue.

Definition at line 84 of file ZMailslot.cpp.

◆ getSlotName()

const QString Zbl::ZMailslot::getSlotName ( )

Get the name of the mailslot.

Definition at line 60 of file ZMailslot.cpp.

◆ messageAvailable

void Zbl::ZMailslot::messageAvailable ( QString  slotName)
signal

Sent when a message has been placed into an endpoint's message queue.

Referenced by onMessageQueueAvailable().

◆ messageCount()

int Zbl::ZMailslot::messageCount ( )

Returns the number of messages in the message queue.

Definition at line 98 of file ZMailslot.cpp.

◆ onMessageQueueAvailable

void Zbl::ZMailslot::onMessageQueueAvailable ( )
privateslot

Definition at line 138 of file ZMailslot.cpp.

Referenced by ZMailslot().

◆ onResponseQueueAvailable

void Zbl::ZMailslot::onResponseQueueAvailable ( )
privateslot

Definition at line 143 of file ZMailslot.cpp.

Referenced by ZMailslot().

◆ peekMessage()

QVariant Zbl::ZMailslot::peekMessage ( )

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 110 of file ZMailslot.cpp.

◆ peekResponse()

QVariant Zbl::ZMailslot::peekResponse ( )

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

Returns
Next response in queue or invalid variant if no responses in queue.

Definition at line 91 of file ZMailslot.cpp.

◆ postMessage()

void Zbl::ZMailslot::postMessage ( QVariant  message)

Enqueues message immediately, then posts a defered messageAvailable signal to the event queue to be sent later.

Control returns to caller before messageAvailable signal is sent.

Parameters
message

Definition at line 72 of file ZMailslot.cpp.

◆ postResponse()

void Zbl::ZMailslot::postResponse ( QVariant  response)

Enqueues response immediately, then queues a defered responseAvailable signal to be sent later.

Parameters
response

Definition at line 124 of file ZMailslot.cpp.

◆ registerType()

void Zbl::ZMailslot::registerType ( )
static

Definition at line 45 of file ZMailslot.cpp.

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

◆ responseAvailable

void Zbl::ZMailslot::responseAvailable ( QString  slotName)
signal

Sent when a response has been received from an endpoint.

Referenced by onResponseQueueAvailable().

◆ responseCount()

int Zbl::ZMailslot::responseCount ( )

Returns the number of responses in the response queue.

Definition at line 79 of file ZMailslot.cpp.

◆ sendMessage()

void Zbl::ZMailslot::sendMessage ( QVariant  message)

Enqueues message and sends messageAvailable signal immediately.

Caller waits while signal is processed.

Parameters
message

Definition at line 65 of file ZMailslot.cpp.

◆ sendResponse()

void Zbl::ZMailslot::sendResponse ( QVariant  response)

Enqueues response and sends responseAvailable signal immediately.

Parameters
response

Definition at line 117 of file ZMailslot.cpp.

◆ setSlotName()

void Zbl::ZMailslot::setSlotName ( const QString &  name)

Set the name of the mailslot.

Definition at line 53 of file ZMailslot.cpp.

Member Data Documentation

◆ m_data

ZMap* Zbl::ZMailslot::m_data
protected

Mailslot owner's user-defined data dictionary.

Zuble will not add or remove objects from this map.

Definition at line 204 of file ZMailslot.h.

Referenced by data().

◆ m_messageQueue

ZMessageQueue Zbl::ZMailslot::m_messageQueue
protected

Messages sent from mailslot owner to endpoint.

Definition at line 190 of file ZMailslot.h.

Referenced by getMessage(), messageCount(), peekMessage(), postMessage(), and sendMessage().

◆ m_responseQueue

ZMessageQueue Zbl::ZMailslot::m_responseQueue
protected

Responses sent from endpoint to mailslot owner.

Definition at line 196 of file ZMailslot.h.

Referenced by getResponse(), peekResponse(), postResponse(), responseCount(), and sendResponse().

◆ m_slotName

ZBL_DECLARE_LOGGED_OBJECT QString Zbl::ZMailslot::m_slotName
protected

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