Added queue wrapper
This commit is contained in:
1 parent
dc67f5661b
commit
14d015052d
10 files changed
+58
-9
No files matched your search
@@ -10,7 +10,7 @@
|
||||
|
||||
// local includes
|
||||
#include "delayedconstruction.h"
|
||||
#include "recursive_mutex_semaphore.h"
|
||||
#include "wrappers/recursive_mutex_semaphore.h"
|
||||
#include "recursivelockhelper.h"
|
||||
|
||||
namespace espcpputils {
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,48 @@
|
||||
#pragma once
|
||||
|
||||
// espressif includes
|
||||
#include <freertos/FreeRTOS.h>
|
||||
#include <freertos/queue.h>
|
||||
|
||||
// local includes
|
||||
#include "cppmacros.h"
|
||||
|
||||
namespace espcpputils {
|
||||
class queue
|
||||
{
|
||||
CPP_DISABLE_COPY_MOVE(queue)
|
||||
|
||||
public:
|
||||
queue(const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize) :
|
||||
handle{xQueueCreate(uxQueueLength, uxItemSize)}
|
||||
{}
|
||||
|
||||
~queue() { if (handle) vQueueDelete(handle); }
|
||||
|
||||
BaseType_t send(const void * pvItemToQueue, TickType_t xTicksToWait) { return xQueueSend(handle, pvItemToQueue, xTicksToWait); }
|
||||
|
||||
BaseType_t sendToBack(const void * pvItemToQueue, TickType_t xTicksToWait) { return xQueueSendToBack(handle, pvItemToQueue, xTicksToWait); }
|
||||
|
||||
BaseType_t sendToFront(const void * pvItemToQueue, TickType_t xTicksToWait) { return xQueueSendToFront(handle, pvItemToQueue, xTicksToWait); }
|
||||
|
||||
BaseType_t receive(void *pvBuffer, TickType_t xTicksToWait) { return xQueueReceive(handle, pvBuffer, xTicksToWait); }
|
||||
|
||||
UBaseType_t messagesWaiting() const { return uxQueueMessagesWaiting(handle); }
|
||||
|
||||
UBaseType_t spacesAvailable() const { return SpacesAvailable(handle); }
|
||||
|
||||
BaseType_t reset() { return xQueueReset(handle); }
|
||||
|
||||
BaseType_t overwrite(const void * pvItemToQueue) { return xQueueOverwrite(handle, pvItemToQueue); }
|
||||
|
||||
BaseType_t peek(void *pvBuffer, TickType_t xTicksToWait) const { return xQueuePeek(handle, pvBuffer, xTicksToWait); }
|
||||
|
||||
void addToRegistry(char *pcQueueName) { return vQueueAddToRegistry(handle, pcQueueName); }
|
||||
|
||||
void unregisterQueue() { return vQueueUnregisterQueue(handle); }
|
||||
|
||||
const char *getName() const { return pcQueueGetName(handle); }
|
||||
|
||||
const QueueHandle_t handle;
|
||||
};
|
||||
} // namespace espcpputils
|
||||
File renamed without changes.
File renamed without changes.
Reference in new issue
Block a user