このページでは

C

<platform/messagequeue.h> - Queue abstraction

プラットフォーム固有のキューに対する抽象化機能を提供します。詳細...

Header: #include <platform/messagequeue.h>

(since Qt Quick Ultralite (Platform) 1.9) enum class MessageQueueStatus { Success, MessageDiscarded, MessageOverwritten, EmptyQueue, Timeout, …, OtherError }

関数

(since Qt Quick Ultralite (Platform) 1.9) void deleteQueue(Qul::Platform::MessageQueueInterface *queue)
(since Qt Quick Ultralite (Platform) 1.9) std::size_t maximumQueueMessageSize()
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueInterface *requestQueue(std::size_t queueCapacity, std::size_t messageSize)

詳細な説明

このヘッダーには、Qt Quick のUltralite Coreライブラリによって処理されるEventQueues で使用される、すべてのキューインターフェースの抽象化が含まれています。

クラス

Qul::Platform::MessageQueue

キューの実装とのインターフェースに使用される利便性クラス

Qul::Platform::MessageQueueInterface

Qt Quick Ultralite にプラットフォーム固有のキューを提供するインターフェースクラス

型のドキュメント

[since Qt Quick Ultralite (Platform) 1.9] enum class MessageQueueStatus

MessageQueueInterface 関数によって返されるステータスコード。

定数説明
MessageQueueStatus::Success0関数が正常に実行されました。
MessageQueueStatus::MessageDiscarded1メッセージが破棄されました。これは、MessageQueueInterface::enqueueOrDiscard() および MessageQueueInterface::enqueueOrDiscardFromInterrupt() 関数が指定されたメッセージを破棄した場合にのみ返される必要があります。
MessageQueueStatus::MessageOverwritten2キュー内のメッセージが、指定されたメッセージで上書きされました。これは、MessageQueueInterface::enqueueOrOverwrite() および MessageQueueInterface::enqueueOrOverwriteFromInterrupt() 関数によってのみ返される必要があります。
MessageQueueStatus::EmptyQueue3MessageQueueInterface::receive() または MessageQueueInterface::receiveFromInterrupt() が、キューが空であるため、キューからメッセージを取得できませんでした。
MessageQueueStatus::Timeout4タイムアウトms 内にキューからメッセージを取得できませんでした。
MessageQueueStatus::DiscardNotSupported5キューの実装は破棄をサポートしていません。
MessageQueueStatus::OverwriteNotSupported6キューの実装は上書きをサポートしていません。
MessageQueueStatus::OtherError7ステータスコードのいずれも、関数のステータスに一致しません。EventQueue はこれをエラーとして扱います。

この列挙型は、Qt Quick Ultralite (Platform) 1.9 で導入されました。

関数のドキュメント

[since Qt Quick Ultralite (Platform) 1.9] void deleteQueue(Qul::Platform::MessageQueueInterface *queue)

queue を削除します。

この関数は、MessageQueue がキューが不要になった際に、そのキューを削除するために使用されます。

以下に、この関数の実装例を示します。

void deleteQueue(MessageQueueInterface *queue)
{
    MyMessageQueue *mq = static_cast<MyMessageQueue *>(queue);
    mq->~MyMessageQueue();
    qul_free(mq);
}

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

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

[since Qt Quick Ultralite (Platform) 1.9] std::size_t maximumQueueMessageSize()

キューが保持できるメッセージの最大サイズを返します。キューのメッセージの最大サイズが不明であるか、または任意である場合は、SIZE_MAX を返さなければなりません。

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

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

[since Qt Quick Ultralite (Platform) 1.9] Qul::Platform::MessageQueueInterface *requestQueue(std::size_t queueCapacity, std::size_t messageSize)

queueCapacity の容量を持つMessageQueueInterface の実装インスタンスを返します。このキューは、messageSize の要件を満たすメッセージを受け入れる必要があります。実装がqueueCapacity またはmessageSize の要件を満たせない場合、この関数はNULLポインタを返さなければなりません。

この関数は、MessageQueue によって、その用途に適したキューを取得するために使用されます。

以下に、この関数の実装例を示します。

MessageQueueInterface *requestQueue(size_t queueCapacity, size_t messageSize)
{
    void *queue = qul_malloc(sizeof(MyMessageQueue));

    if (queue == NULL) {
        return NULL;
    }

    MessageQueueInterface *interface = new (queue) MyMessageQueue(queueCapacity, messageSize);
    return interface;
}

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

関連項目: deleteQueue()、maximumQueueMessageSize()、Qul::Platform::MessageQueue 、およびQul::Platform::MessageQueueInterface

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