C
<platform/messagequeue.h> - 队列抽象
提供对特定平台队列的抽象。 更多...
头文件 | #include <platform/messagequeue.h> |
类型
枚举类 | MessageQueueStatus { 成功, 消息被丢弃, 消息被覆盖, 空队列, 超时, ..., 其他错误 } |
函数
void | deleteQueue(Qul::Platform::MessageQueueInterface *queue) |
std::size_t | maximumQueueMessageSize() |
Qul::Platform::MessageQueueInterface * | requestQueue(std::size_t queueCapacity, std::size_t messageSize) |
类型文档
[自 Qt Quick Ultralite (Platform) 1.9]
枚举类 MessageQueueStatus
由 MessageQueueInterface 函数返回的状态代码。
常量 | 值 | 描述 |
---|---|---|
MessageQueueStatus::Success | 0 | 函数执行成功。 |
MessageQueueStatus::MessageDiscarded | 1 | 消息被丢弃。这仅应在 MessageQueueInterface 的 enqueueOrDiscard 和 enqueueOrDiscardFromInterrupt 函数丢弃给定的消息时返回。 |
MessageQueueStatus::MessageOverwritten | 2 | 队列中的一个消息被给定消息覆盖。这仅由 MessageQueueInterface 的 enqueueOrOverwrite 和 enqueueOrOverwriteFromInterrupt 函数返回。 |
MessageQueueStatus::EmptyQueue | 3 | 由于队列为空,MessageQueueInterface 的 receive 或 receiveFromInterrupt 无法从队列中获取消息。 |
MessageQueueStatus::Timeout | 4 | 在 timeout 毫秒内无法从队列中获取消息。 |
MessageQueueStatus::DiscardNotSupported | 5 | 队列实现不支持丢弃。 |
MessageQueueStatus::OverwriteNotSupported | 6 | 队列实现不支持覆盖。 |
MessageQueueStatus::OtherError | 7 | 没有任何状态代码符合该函数的状态。《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::MessageQueue 和 Qul::Platform::MessageQueueInterface。
[自 Qt Quick Ultralite (平台) 1.9以来]
std::size_t maximumQueueMessageSize()
返回队列可以持有的消息的最大大小。如果队列的最大消息大小未知或任意,必须返回 SIZE_MAX
。
此函数在 Qt Quick Ultralite (平台) 1.9 中引入。
另请参阅 requestQueue(),Qul::Platform::MessageQueue 和 Qul::Platform::MessageQueueInterface。
[自 Qt Quick Ultralite (平台) 1.9以来]
Qul::Platform::MessageQueueInterface *requestQueue(std::size_t queueCapacity, std::size_t messageSize)
返回具有queueCapacity容量的MessageQueueInterface实现实例。队列必须接受满足messageSize要求的消息。如果实现无法满足queueCapacity或messageSize,则必须返回空指针。
此函数由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::MessageQueue 和 Qul::Platform::MessageQueueInterface。
在某些 Qt 许可证下可用。
了解更多信息。