C

<platform/messagequeue.h> - 队列抽象

提供对特定平台队列的抽象。 更多...

头文件 #include <platform/messagequeue.h>

类型

枚举类MessageQueueStatus { 成功, 消息被丢弃, 消息被覆盖, 空队列, 超时, ..., 其他错误 }

函数

voiddeleteQueue(Qul::Platform::MessageQueueInterface *queue)
std::size_tmaximumQueueMessageSize()
Qul::Platform::MessageQueueInterface *requestQueue(std::size_t queueCapacity, std::size_t messageSize)

详细描述

此头文件包含 Qt Quick Ultralite 核心库所用的所有队列接口抽象。

Qul::Platform::MessageQueue

用于与队列实现接口的便利类

Qul::Platform::MessageQueueInterface

提供特定平台队列给 Qt Quick Ultralite 的接口类

类型文档

[自 Qt Quick Ultralite (Platform) 1.9] 枚举类 MessageQueueStatus

MessageQueueInterface 函数返回的状态代码。

常量描述
MessageQueueStatus::Success0函数执行成功。
MessageQueueStatus::MessageDiscarded1消息被丢弃。这仅应在 MessageQueueInterfaceenqueueOrDiscardenqueueOrDiscardFromInterrupt 函数丢弃给定的消息时返回。
MessageQueueStatus::MessageOverwritten2队列中的一个消息被给定消息覆盖。这仅由 MessageQueueInterfaceenqueueOrOverwriteenqueueOrOverwriteFromInterrupt 函数返回。
MessageQueueStatus::EmptyQueue3由于队列为空,MessageQueueInterfacereceivereceiveFromInterrupt 无法从队列中获取消息。
MessageQueueStatus::Timeout4timeout 毫秒内无法从队列中获取消息。
MessageQueueStatus::DiscardNotSupported5队列实现不支持丢弃。
MessageQueueStatus::OverwriteNotSupported6队列实现不支持覆盖。
MessageQueueStatus::OtherError7没有任何状态代码符合该函数的状态。《EventQueue》将其视为错误。

此枚举在 Qt Quick Ultralite (平台) 1.9 中引入或修改。

函数文档

[自 Qt Quick Ultralite (平台) 1.9以来] void deleteQueue(Qul::Platform::MessageQueueInterface *queue)

删除队列

此函数由MessageQueue用于在不再需要时删除队列。

以下为此函数的一个示例实现

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

此函数在 Qt Quick Ultralite (平台) 1.9 中引入。

另请参阅 requestQueue(),maximumQueueMessageSize(),Qul::Platform::MessageQueueQul::Platform::MessageQueueInterface

[自 Qt Quick Ultralite (平台) 1.9以来] std::size_t maximumQueueMessageSize()

返回队列可以持有的消息的最大大小。如果队列的最大消息大小未知或任意,必须返回 SIZE_MAX

此函数在 Qt Quick Ultralite (平台) 1.9 中引入。

另请参阅 requestQueue(),Qul::Platform::MessageQueueQul::Platform::MessageQueueInterface

[自 Qt Quick Ultralite (平台) 1.9以来] Qul::Platform::MessageQueueInterface *requestQueue(std::size_t queueCapacity, std::size_t messageSize)

返回具有queueCapacity容量的MessageQueueInterface实现实例。队列必须接受满足messageSize要求的消息。如果实现无法满足queueCapacitymessageSize,则必须返回空指针。

此函数由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 (平台) 1.9 中引入。

另请参阅 deleteQueue(),maximumQueueMessageSize(),Qul::Platform::MessageQueueQul::Platform::MessageQueueInterface

在某些 Qt 许可证下可用。
了解更多信息。