diff --git a/include/sta/rtos/queue.hpp b/include/sta/rtos/queue.hpp index e2b809a..f731c91 100644 --- a/include/sta/rtos/queue.hpp +++ b/include/sta/rtos/queue.hpp @@ -26,10 +26,13 @@ namespace sta using Message = T; /**< Queue message type */ public: + // Default Constructor + RtosQueue(); + /** * @param handle CMSIS RTOS2 queue handle */ - RtosQueue(osMessageQueueId_t * handle); + RtosQueue(osMessageQueueId_t handle); /** * @brief Place message in queue. @@ -56,7 +59,7 @@ namespace sta uint32_t available() const; private: - osMessageQueueId_t * handle_; /**< CMSIS RTOS2 queue handle */ + osMessageQueueId_t handle_; /**< CMSIS RTOS2 queue handle */ }; } // namespace sta diff --git a/include/sta/rtos/queue.tpp b/include/sta/rtos/queue.tpp index 35d14fe..0ca5676 100644 --- a/include/sta/rtos/queue.tpp +++ b/include/sta/rtos/queue.tpp @@ -5,13 +5,18 @@ # error "Internal header. Use instead." #endif // !STA_RTOS_QUEUE_HPP -#include +#include namespace sta { template - RtosQueue::RtosQueue(osMessageQueueId_t * handle) + RtosQueue::RtosQueue() + { + } + + template + RtosQueue::RtosQueue(osMessageQueueId_t handle) : handle_{handle} { STA_ASSERT(handle != nullptr); @@ -20,20 +25,20 @@ namespace sta template bool RtosQueue::put(const Message & msg, uint32_t timeout /* = osWaitForever */) { - return (osOK == osMessageQueuePut(*handle_, &msg, 0, timeout)); + return (osOK == osMessageQueuePut(handle_, &msg, 0, timeout)); } template bool RtosQueue::get(Message * outMsg, uint32_t timeout /* = osWaitForever */) { uint8_t prio; - return (osOK == osMessageQueueGet(*handle_, outMsg, &prio, timeout)); + return (osOK == osMessageQueueGet(handle_, outMsg, &prio, timeout)); } template - uint32 RtosQueue::available() const + uint32_t RtosQueue::available() const { - return osMessageQueueGetCount(*handle_); + return osMessageQueueGetCount(handle_); } } // namespace sta