move pool/queue management into the rf95 lib

This commit is contained in:
geeksville
2020-04-14 13:20:36 -07:00
parent 5904d66111
commit 80c69c28cd
3 changed files with 0 additions and 0 deletions

28
src/rf95/PointerQueue.h Normal file
View File

@@ -0,0 +1,28 @@
#pragma once
#include "TypedQueue.h"
/**
* A wrapper for freertos queues that assumes each element is a pointer
*/
template <class T> class PointerQueue : public TypedQueue<T *>
{
public:
PointerQueue(int maxElements) : TypedQueue<T *>(maxElements) {}
// returns a ptr or null if the queue was empty
T *dequeuePtr(TickType_t maxWait = portMAX_DELAY)
{
T *p;
return this->dequeue(&p, maxWait) ? p : nullptr;
}
// returns a ptr or null if the queue was empty
T *dequeuePtrFromISR(BaseType_t *higherPriWoken)
{
T *p;
return this->dequeueFromISR(&p, higherPriWoken) ? p : nullptr;
}
};