[message-queue] enable adding a message to head of queue (#2246)

This commit updates the `MessageQueue` implementation to allow
messages to be added to head/front of the queue. It adds new methods
to the `MessageQueue` class and a corresponding one in public
OpenThread APIs (`otMessageQueueEnqueueAtHead()`). This commit also
updates the `test_message_queue` unit test to add cases/scenarios for
testing the new methods and public APIs.
This commit is contained in:
Abtin Keshavarzian
2017-10-11 15:15:53 -07:00
committed by Jonathan Hui
parent 95f744fbb4
commit 2578a7bf8c
5 changed files with 109 additions and 18 deletions
+7
View File
@@ -123,6 +123,13 @@ otError otMessageQueueEnqueue(otMessageQueue *aQueue, otMessage *aMessage)
return queue->Enqueue(*message);
}
otError otMessageQueueEnqueueAtHead(otMessageQueue *aQueue, otMessage *aMessage)
{
Message *message = static_cast<Message *>(aMessage);
MessageQueue *queue = static_cast<MessageQueue *>(aQueue);
return queue->Enqueue(*message, MessageQueue::kQueuePositionHead);
}
otError otMessageQueueDequeue(otMessageQueue *aQueue, otMessage *aMessage)
{
Message *message = static_cast<Message *>(aMessage);