このページでは

C

Qul::Platform::MessageQueue Class

template <typename MessageType, std::size_t queueCapacity> class Qul::Platform::MessageQueue

キューの実装とのインターフェイスに使用される便利なクラス。詳細...

Header: #include <platform/messagequeue.h>
Since: Qt Quick Ultralite (Platform) 1.9

パブリック関数

(since Qt Quick Ultralite (Platform) 1.9) MessageQueue()
(since Qt Quick Ultralite (Platform) 1.9) ~MessageQueue()
(since Qt Quick Ultralite (Platform) 1.9) uint32_t capacity() const
(since Qt Quick Ultralite (Platform) 1.9) void clearOverrun()
(since Qt Quick Ultralite (Platform) 1.9) bool discardSupported() const
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus enqueueOrDiscard(const MessageType *message)
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus enqueueOrDiscardFromInterrupt(const MessageType *message)
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus enqueueOrOverwrite(const MessageType *message)
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus enqueueOrOverwriteFromInterrupt(const MessageType *message)
(since Qt Quick Ultralite (Platform) 1.9) bool isEmpty() const
(since Qt Quick Ultralite (Platform) 1.9) bool isEmptyFromInterrupt() const
(since Qt Quick Ultralite (Platform) 1.9) bool isOverrun() const
(since Qt Quick Ultralite (Platform) 1.9) bool overwriteSupported() const
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus receive(MessageType *message, int32_t timeout = 0)
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus receiveFromInterrupt(MessageType *message, int32_t timeout = 0)

詳細説明

このテンプレートクラスは、キューの作成、削除、メッセージサイズの計算などのタスクを自動化することで、キューの使用を単純化します。提供される関数のほとんどは、Qul::Platform::MessageQueueInterface に対応する関数を呼び出します。

Qul::Platform::MessageQueueInterface およびQul::EventQueueも参照して ください。

メンバ関数のドキュメント

[since Qt Quick Ultralite (Platform) 1.9] MessageQueue::MessageQueue()

MessageQueue を構築し、指定された容量のQul::Platform::MessageQueueInterface 実装を要求する。messageSize としてMessageType のサイズを使用します。

この関数はQt Quick Ultralite (Platform) 1.9 で導入されました。

~MessageQueue() およびQul::Platform::requestQueue()も参照してください

[since Qt Quick Ultralite (Platform) 1.9] MessageQueue::~MessageQueue()

MessageQueue インスタンスを破棄します。

この関数はQt Quick Ultralite (Platform) 1.9 で導入されました。

MessageQueue()も参照してください

[since Qt Quick Ultralite (Platform) 1.9] uint32_t MessageQueue::capacity() const

キューが保持できるアイテムの最大数を返します。

この関数はQt Quick Ultralite (Platform) 1.9 で導入されました。

MessageQueueInterface::capacity()も参照してください

[since Qt Quick Ultralite (Platform) 1.9] void MessageQueue::clearOverrun()

実装のオーバーランフラグをクリアする。

この関数はQt Quick Ultralite (Platform) 1.9 で導入された。

MessageQueueInterface::clearOverrun() およびisOverrun()も参照のこと

[since Qt Quick Ultralite (Platform) 1.9] bool MessageQueue::discardSupported() const

実装が破棄をサポートしている場合はtrue を返す。

この関数はQt Quick Ultralite (Platform) 1.9 で導入されました。

MessageQueueInterface::discardSupported()、overwriteSupported()、enqueueOrDiscard()、enqueueOrDiscardFromInterrupt()も参照してください

[since Qt Quick Ultralite (Platform) 1.9] Qul::Platform::MessageQueueStatus MessageQueue::enqueueOrDiscard(const MessageType *message)

message をキューに追加するか、キューがいっぱいの場合は破棄する。関数呼び出しの結果を示すMessageQueueStatus を返します。

注意: Qt Quick Ultralite のデフォルト実装では非内在型は扱えないため、message には内在型のみを含める必要があります。非内在型を使用したい場合は、独自の実装MessageQueueInterface を用意してください。詳細については、カスタムキューの実装を参照してください。

この関数はQt Quick Ultralite (Platform) 1.9 で導入されました。

MessageQueueInterface::enqueueOrDiscard()、enqueueOrDiscardFromInterrupt()、discardSupported()、receive()、receiveFromInterrupt()、enqueueOrOverwrite()も参照のこと

[since Qt Quick Ultralite (Platform) 1.9] Qul::Platform::MessageQueueStatus MessageQueue::enqueueOrDiscardFromInterrupt(const MessageType *message)

enqueueOrDiscard() の割り込み安全バージョン。

注意: Qt Quick Ultralite のデフォルトの実装では非内在型は扱えないため、message には内在型のみを含める必要があります。非内在型を使用したい場合は、独自のMessageQueueInterface 実装を用意してください。詳細については、カスタムキューの実装を参照してください。

この関数はQt Quick Ultralite (Platform) 1.9 で導入されました。

MessageQueueInterface::enqueueOrDiscardFromInterrupt()、enqueueOrDiscard()、discardSupported()、receive()、receiveFromInterrupt()、enqueueOrOverwriteFromInterrupt()も参照のこと

[since Qt Quick Ultralite (Platform) 1.9] Qul::Platform::MessageQueueStatus MessageQueue::enqueueOrOverwrite(const MessageType *message)

キューが一杯の場合、message を追加するか、キュー内の最も古い項目を上書きする。関数呼び出しの結果を示すMessageQueueStatus を返します。

注意: Qt Quick Ultralite のデフォルト実装では非内在型は扱えないため、message には内在型のみを含める必要があります。非内在型を使用したい場合は、独自の実装MessageQueueInterface を用意してください。詳細については、カスタムキューの実装を参照してください。

この関数はQt Quick Ultralite (Platform) 1.9 で導入されました。

MessageQueueInterface::enqueueOrOverwrite()、enqueueOrOverwriteFromInterrupt()、overwriteSupported()、receive()、receiveFromInterrupt()、enqueueOrDiscard()も参照のこと

[since Qt Quick Ultralite (Platform) 1.9] Qul::Platform::MessageQueueStatus MessageQueue::enqueueOrOverwriteFromInterrupt(const MessageType *message)

enqueueOrOverwrite() の割り込み安全バージョン。

注意: Qt Quick Ultralite のデフォルトの実装では非内在型は扱えないため、message には内在型のみを含める必要があります。非内在型を使用したい場合は、独自のMessageQueueInterface 実装を用意してください。詳細については、カスタムキューの実装を参照してください。

この関数はQt Quick Ultralite (Platform) 1.9 で導入されました。

MessageQueueInterface::enqueueOrOverwriteFromInterrupt()、enqueueOrOverwrite()、overwriteSupported()、receive()、receiveFromInterrupt()、enqueueOrDiscardFromInterrupt()も参照のこと

[since Qt Quick Ultralite (Platform) 1.9] bool MessageQueue::isEmpty() const

キューが空であればtrue を、そうでなければfalse を返す。

この関数はQt Quick Ultralite (Platform) 1.9 で導入されました。

MessageQueueInterface::isEmpty() およびisEmptyFromInterrupt()も参照してください

[since Qt Quick Ultralite (Platform) 1.9] bool MessageQueue::isEmptyFromInterrupt() const

キューが空であればtrue を、そうでなければfalse を返す。これはisEmpty() に似ているが、割り込みセーフである。

この関数はQt Quick Ultralite (Platform) 1.9で導入された。

MessageQueueInterface::isEmptyFromInterrupt() およびisEmpty()も参照の こと。

[since Qt Quick Ultralite (Platform) 1.9] bool MessageQueue::isOverrun() const

実装のキューが破棄または上書きされたアイテムによってオーバーランされた場合、true を返します。

この関数はQt Quick Ultralite (Platform) 1.9 で導入されました。

MessageQueueInterface::isOverrun() およびclearOverrun()も参照してください

[since Qt Quick Ultralite (Platform) 1.9] bool MessageQueue::overwriteSupported() const

実装が上書きをサポートしている場合はtrue を返す。

この関数はQt Quick Ultralite (Platform) 1.9 で導入されました。

MessageQueueInterface::overwriteSupported()、discardSupported()、enqueueOrOverwrite()、enqueueOrOverwriteFromInterrupt()も参照

[since Qt Quick Ultralite (Platform) 1.9] Qul::Platform::MessageQueueStatus MessageQueue::receive(MessageType *message, int32_t timeout = 0)

キューから最初のメッセージを返す。timeout が指定された場合、関数はtimeout ミリ秒間ブロックします。タイムアウトの値が 0 の場合、関数はまったくブロックしないことを意味し、負の値の場合、関数は無限に待機することを意味します。

message は、MessageType 全体を保持できる場所へのポインタでなければなりません。キューからのメッセージは memcpy(または同等の関数)を使ってmessage が指す場所に書き込まれます。

この関数はQt Quick Ultralite (Platform) 1.9 で導入されました。

MessageQueueInterface::receive()、receiveFromInterrupt()、enqueueOrDiscard()、enqueueOrDiscardFromInterrupt()、enqueueOrOverwrite()、enqueueOrOverwriteFromInterrupt()も参照のこと

[since Qt Quick Ultralite (Platform) 1.9] Qul::Platform::MessageQueueStatus MessageQueue::receiveFromInterrupt(MessageType *message, int32_t timeout = 0)

receive() の割り込みセーフ版。

message は MessageType 全体を保持できる場所へのポインタでなければならない。キューからのメッセージは memcpy(または同等の関数)を使ってmessage が指す場所に書き込まれる。

注意: 一般的に、割り込みから呼び出される関数は、まったくブロックされないはずです。実装によっては、引数timeout がゼロ以外の値であっても無視される場合がある。

この関数はQt Quick Ultralite (Platform) 1.9 で導入された。

MessageQueueInterface::receiveFromInterrupt(),receive(),enqueueOrDiscard(),enqueueOrDiscardFromInterrupt(),enqueueOrOverwrite(),enqueueOrOverwriteFromInterrupt()も参照してください

特定の Qt ライセンスの下で利用可能です。
詳細をご覧ください。