このページでは

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タイムアウト時間内にキューからメッセージを取得できませんでした。
MessageQueueStatus::DiscardNotSupported5キューの実装が破棄をサポートしていません。
MessageQueueStatus::OverwriteNotSupported6キューの実装が上書きをサポートしていない。
MessageQueueStatus::OtherError7EventQueue はこれをエラーとして扱う。

この列挙型は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::MessageQueueQul::Platform::MessageQueueInterfaceも参照してください

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