40#ifndef WORK_QUEUE_HPP_
41#define WORK_QUEUE_HPP_
51#define DEFAULT_MAX_WORK_ITEMS 10
52#define DEFAULT_WORK_QUEUE_STACK_SIZE (configMINIMAL_STACK_SIZE * 2)
53#define DEFAULT_WORK_QUEUE_PRIORITY (tskIDLE_PRIORITY + 1)
87 WorkItem(
bool freeAfterComplete =
false);
146 uint16_t StackDepth = DEFAULT_WORK_QUEUE_STACK_SIZE,
147 UBaseType_t Priority = DEFAULT_WORK_QUEUE_PRIORITY,
148 UBaseType_t MaxWorkItems = DEFAULT_MAX_WORK_ITEMS);
159 WorkQueue( uint16_t StackDepth = DEFAULT_WORK_QUEUE_STACK_SIZE,
160 UBaseType_t Priority = DEFAULT_WORK_QUEUE_PRIORITY,
161 UBaseType_t MaxWorkItems = DEFAULT_MAX_WORK_ITEMS);
163#if (INCLUDE_vTaskDelete == 1)
177#if __cplusplus >= 201103L
const uint16_t StackDepth
WorkItem(bool freeAfterComplete=false)
const bool FreeItemAfterCompleted
const WorkQueue * ParentWorkQueue
CWorkerThread(const char *const Name, uint16_t StackDepth, UBaseType_t Priority, WorkQueue *Parent)
BinarySemaphore * ThreadComplete
WorkQueue(const char *const Name, uint16_t StackDepth=DEFAULT_WORK_QUEUE_STACK_SIZE, UBaseType_t Priority=DEFAULT_WORK_QUEUE_PRIORITY, UBaseType_t MaxWorkItems=DEFAULT_MAX_WORK_ITEMS)
bool QueueWork(WorkItem *work)
CWorkerThread * WorkerThread