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 ライセンスの下で利用可能です。
詳細をご覧ください。