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 のデフォルトの実装では非イントリinsic型を処理できないため、message にはイントリinsic型のみを含める必要があります。非イントリinsic型を使用したい場合は、独自の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 message は、MessageType 全体を格納できる場所へのポインタでなければなりません。キューからのメッセージは、memcpy(または同等の関数)を使用して、 が指す場所に書き込まれます。
この関数は、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 message() の引数は、MessageType 全体を格納できる場所へのポインタでなければなりません。キューからのメッセージは、memcpy(または同等の関数)を使用して、 が指す場所に書き込まれます。
注:一般的に 、割り込みから呼び出される関数は一切ブロックしてはなりません。実装によっては、timeout の引数が 0 以外の値であっても無視される場合があります。
この関数は、Qt Quick Ultralite (Platform) 1.9 で導入されました。
関連項目: MessageQueueInterface::receiveFromInterrupt()、receive()、enqueueOrDiscard()、enqueueOrDiscardFromInterrupt()、enqueueOrOverwrite()、およびenqueueOrOverwriteFromInterrupt()。
特定のQtライセンスの下で利用可能です。
詳細はこちらをご覧ください。