pgLab/tsqueue.h

28 lines
450 B
C
Raw Normal View History

#ifndef TSQUEUE_H
#define TSQUEUE_H
#include "Win32Event.h"
#include <deque>
#include <functional>
#include <mutex>
class TSQueue {
public:
using t_Callable = std::function<void()>;
TSQueue();
void add(t_Callable callable);
bool empty();
t_Callable pop();
HANDLE getNewDataEventHandle();
private:
using t_CallableQueue = std::deque<t_Callable>;
Win32Event newData;
std::mutex m;
t_CallableQueue futureQueue;
};
#endif // TSQUEUE_H