#include <TaskQueue.h>
Public Member Functions | |
TaskQueue () | |
Create a TaskQueue. More... | |
virtual | ~TaskQueue () |
Destroy a TaskQueue. More... | |
virtual void | post (TaskBase *event)=0 |
Add this event to the queue for execution. More... | |
virtual void | cancel (TaskBase *event)=0 |
Cancel an in-flight event. More... | |
Static Protected Member Functions | |
static uint32_t | task_size (TaskBase *task) |
Get the size required to run this task. More... | |
static TaskBase::run_callback_t | task_start (TaskBase *task, uint8_t *dest, uint32_t size) |
Start processing this event by copying out its data. More... | |
static void | task_finish (TaskBase *task) |
Finish processing this event. More... | |
TaskQueue | ( | ) |
|
virtual |
Destroy a TaskQueue.
Definition at line 51 of file TaskQueue.h.
|
pure virtual |
Cancel an in-flight event.
Cancels the given event so the event's memory can be reused.
The cancel function is irq safe.
If called while the event queue's dispatch loop is active, the cancel function does not guarantee that the event will not execute after it returns, as the event may have already begun executing. It does guarantee that the event queue is no longer using event data so the event can be freed or reused.
event | Pointer to the event |
Implemented in PolledQueue.
|
pure virtual |
Add this event to the queue for execution.
If the event is already in the queue then it is canceled and added to the end of the queue.
event | Pointer to the event |
Implemented in PolledQueue.
|
staticprotected |
Finish processing this event.
Inform this event that the callback has run to completion.
task | The task to finish processing |
Definition at line 131 of file TaskQueue.h.
|
staticprotected |
Get the size required to run this task.
Get the minimum size required for TaskQueue::task_start
task | The task to check size on |
Definition at line 93 of file TaskQueue.h.
|
staticprotected |
Start processing this event by copying out its data.
Inform this event both that callback execution has started and that the event is free to be posted again.
task | The task to start processing |
dest | The buffer to copy the callback arguments to |
size | maximum size to copy |
Definition at line 115 of file TaskQueue.h.