mirror of
https://github.com/espressif/openthread.git
synced 2026-07-02 18:30:22 +00:00
d0cf21e3ba
This commit contains the following: - It adds methods to `Message` to assign a priority level to messages. Currently there are four priority levels: High, Medium, Low, VeryLow but this is easily changeable. - It introduces a new class `PriorityQueue` which implements a FIFO queue for storing messages based on their priority level in addition to oder in which they are added. If the priority level of an already queued message in a `PriorityQueue` is changed, the associated queue will automatically move the message within the queue based on its new priority level. Internally the implementation uses a circular doubly linked-list with an array of tail pointers associated with different priority levels. - It adds new methods and an `Iterator` class in `MessagePool` to access the priority queue where all allocated and queued messages from this pool are stored. The `Iterator` class allows bi-directional iteration through the list (from highest priority to lowest or reverse). - This commit also contain detailed unit-test for all the newly added features/methods.