#pragma once #include #include #include #include #include "fragment_dataformat.h" class ControlledQueue { public: ControlledQueue(uint32_t maxSize, int timeoutMicroseconds); void put(Fragment fragment); Fragment get(); bool empty() { return m_queue.empty(); } private: std::mutex m_mtx; std::condition_variable m_cv; uint32_t m_maxSize; std::queue m_queue; int m_timeoutMicroseconds; };