NeuralEngine A Game Engine with embeded Machine Learning algorithms based on Gaussian Processes. |

NeThreadSafeQueue.h
1
11#pragma once
12
13#include <NeCoreLib.h>
14#include <mutex>
15#include <queue>
16
17 namespace NeuralEngine
18{
19
20 template <typename Element>
21 class ThreadSafeQueue
22 {
23 public:
24 // Construction and destruction.
25 virtual ~ThreadSafeQueue();
26 ThreadSafeQueue(size_t maxNumElements = 0);
27
28 // All the operations are thread-safe.
29 size_t GetMaxNumElements() const;
30 size_t GetNumElements() const;
31 bool Push(Element const& element);
32 bool Pop(Element& element);
33
34 protected:
35 size_t mMaxNumElements;
36 std::queue<Element> mQueue;
37 mutable std::mutex mMutex;
38 };
39#include "NeThreadSafeQueue.inl"
40}
NeuralEngine::ThreadSafeQueue
Definition: NeThreadSafeQueue.h:22
NeuralEngine::ThreadSafeQueue::~ThreadSafeQueue
virtual ~ThreadSafeQueue()
Definition: NeThreadSafeQueue.inl:12
NeuralEngine
Definition: NeArray2.h:18