Yet Another Game Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
active.h
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include "syncqueue.h"
12 
13 #include <functional>
14 #include <memory>
15 #include <thread>
16 
17 namespace yage
18 {
19 
20 class Active
21 {
22 public:
23  typedef std::function<void()> Callback;
24 
25  Active(const Active &) = delete;
26  Active &operator=(const Active &) = delete;
27 
28  ~Active();
29 
30  static std::unique_ptr<Active> create();
31 
32  void send(Callback message);
33 
34 private:
35  Active();
36  void run();
37 
38  bool running_;
39  SyncQueue<Callback> queue_;
40  std::thread thread_;
41 };
42 
43 } // namespace yage
void send(Callback message)
Definition: active.cpp:31
Definition: active.h:20
std::function< void()> Callback
Definition: active.h:23
Active & operator=(const Active &)=delete
~Active()
Definition: active.cpp:16
static std::unique_ptr< Active > create()
Definition: active.cpp:22