SimpleEventBuilder/backup/ControlledQueue.h

28 lines
532 B
C
Raw Permalink Normal View History

2023-09-03 19:20:58 +00:00
#pragma once
#include <cstdint>
#include <mutex>
#include <condition_variable>
#include <queue>
#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<Fragment> m_queue;
int m_timeoutMicroseconds;
};