2017-01-03 07:22:36 +01:00
|
|
|
|
#include "tsqueue.h"
|
|
|
|
|
|
|
|
|
|
|
|
TSQueue::TSQueue()
|
2017-08-23 13:27:23 +02:00
|
|
|
|
// : newData(Win32Event::Reset::Manual, Win32Event::Initial::Clear)
|
2017-01-03 07:22:36 +01:00
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
|
|
void TSQueue::add(t_Callable callable)
|
|
|
|
|
|
{
|
|
|
|
|
|
std::lock_guard<std::mutex> g(m);
|
|
|
|
|
|
futureQueue.push_back(std::move(callable));
|
2017-08-23 13:27:23 +02:00
|
|
|
|
// newData.set();
|
2017-01-03 07:22:36 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool TSQueue::empty()
|
|
|
|
|
|
{
|
|
|
|
|
|
std::lock_guard<std::mutex> g(m);
|
|
|
|
|
|
return futureQueue.empty();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TSQueue::t_Callable TSQueue::pop()
|
|
|
|
|
|
{
|
|
|
|
|
|
std::lock_guard<std::mutex> g(m);
|
|
|
|
|
|
auto f = std::move(futureQueue.front());
|
|
|
|
|
|
futureQueue.pop_front();
|
|
|
|
|
|
if (futureQueue.empty()) {
|
2017-08-23 13:27:23 +02:00
|
|
|
|
// newData.reset();
|
2017-01-03 07:22:36 +01:00
|
|
|
|
}
|
|
|
|
|
|
return f;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2017-08-23 13:27:23 +02:00
|
|
|
|
// HANDLE TSQueue::getNewDataEventHandle()
|
|
|
|
|
|
// {
|
|
|
|
|
|
// return newData.handle();
|
|
|
|
|
|
// }
|