#pragma once #include "MPMCQueueInterface.hpp" #include "Arduino.h" template class freeRTOSMPMCQueue: public MPMCQueueInterface { public: freeRTOSMPMCQueue(uint32_t size); ~freeRTOSMPMCQueue(); bool push (T obj); bool push (T obj, bool overwrite); std::optional pop(); std::optional peek(); bool isFull(); bool isEmpty(); private: QueueHandle_t queue; };