|
ELEC-C7222
Libraries for ELEC C7222 Course Work
|
Ownership-based wrapper for a fixed-size item queue. More...
#include <freertos_queue.hpp>


Public Member Functions | |
| FreeRtosQueue ()=default | |
| Construct an uninitialized queue wrapper. | |
| FreeRtosQueue (std::size_t length, std::size_t item_size) | |
| Construct and initialize a queue. | |
| bool | Initialize (std::size_t length, std::size_t item_size) |
| Initialize (or re-initialize) the queue. | |
| ~FreeRtosQueue () | |
| Destroy queue resources if initialized. | |
| bool | Send (const void *item, std::uint32_t ticks_to_wait=0) |
| Enqueue one item from task context. | |
| bool | SendFromISR (const void *item) |
| Enqueue one item from ISR context. | |
| bool | Receive (void *out_item, std::uint32_t ticks_to_wait=0) |
| Dequeue one item from task context. | |
| bool | ReceiveFromISR (void *out_item) |
| Dequeue one item from ISR context. | |
| bool | Overwrite (const void *item) |
| Overwrite queue storage with a new item. | |
| bool | Reset () |
| Reset the queue contents. | |
| std::size_t | MessagesWaiting () const |
| std::size_t | SpacesAvailable () const |
| bool | IsValid () const |
Public Member Functions inherited from c7222::NonCopyable | |
| NonCopyable (const NonCopyable &)=delete | |
| NonCopyable & | operator= (const NonCopyable &)=delete |
| NonCopyable (NonCopyable &&)=default | |
| NonCopyable & | operator= (NonCopyable &&)=default |
Public Member Functions inherited from c7222::NonMovable | |
| NonMovable (const NonMovable &)=default | |
| NonMovable & | operator= (const NonMovable &)=default |
| NonMovable (NonMovable &&)=delete | |
| NonMovable & | operator= (NonMovable &&)=delete |
Additional Inherited Members | |
Protected Member Functions inherited from c7222::NonCopyableNonMovable | |
| NonCopyableNonMovable ()=default | |
| ~NonCopyableNonMovable ()=default | |
Protected Member Functions inherited from c7222::NonCopyable | |
| NonCopyable ()=default | |
| ~NonCopyable ()=default | |
Protected Member Functions inherited from c7222::NonMovable | |
| NonMovable ()=default | |
| ~NonMovable ()=default | |
Ownership-based wrapper for a fixed-size item queue.
This wrapper models the classic FreeRTOS queue behavior with task-context and ISR-context send/receive helpers. Send/receive operations are explicit; RAII here refers to queue-handle cleanup.
Typical usage:
|
default |
Construct an uninitialized queue wrapper.
| c7222::FreeRtosQueue::FreeRtosQueue | ( | std::size_t | length, |
| std::size_t | item_size | ||
| ) |
Construct and initialize a queue.
| length | Number of queue elements. |
| item_size | Size of each element in bytes. |
| c7222::FreeRtosQueue::~FreeRtosQueue | ( | ) |
Destroy queue resources if initialized.
| bool c7222::FreeRtosQueue::Initialize | ( | std::size_t | length, |
| std::size_t | item_size | ||
| ) |
Initialize (or re-initialize) the queue.
| length | Number of queue elements. |
| item_size | Size of each element in bytes. |
| bool c7222::FreeRtosQueue::IsValid | ( | ) | const |
| std::size_t c7222::FreeRtosQueue::MessagesWaiting | ( | ) | const |
| bool c7222::FreeRtosQueue::Overwrite | ( | const void * | item | ) |
Overwrite queue storage with a new item.
Intended for queue length of 1 (mailbox pattern).
| bool c7222::FreeRtosQueue::Receive | ( | void * | out_item, |
| std::uint32_t | ticks_to_wait = 0 |
||
| ) |
Dequeue one item from task context.
| out_item | Pointer to destination storage. |
| ticks_to_wait | Max ticks to wait if empty. |
| bool c7222::FreeRtosQueue::ReceiveFromISR | ( | void * | out_item | ) |
Dequeue one item from ISR context.
| bool c7222::FreeRtosQueue::Reset | ( | ) |
Reset the queue contents.
| bool c7222::FreeRtosQueue::Send | ( | const void * | item, |
| std::uint32_t | ticks_to_wait = 0 |
||
| ) |
Enqueue one item from task context.
| item | Pointer to source item data. |
| ticks_to_wait | Max ticks to wait if full. |
| bool c7222::FreeRtosQueue::SendFromISR | ( | const void * | item | ) |
Enqueue one item from ISR context.
| std::size_t c7222::FreeRtosQueue::SpacesAvailable | ( | ) | const |