Init commit
[trackerpp.git] / src / Engine.cpp
1 #include "Engine.h"
2 #include "Logger.h"
3 #include <mutex>
4
5 using namespace suanzi;
6
7 const static std::string TAG = "Engine";
8
9 static std::mutex g_mutex;
10 static Engine* g_instance = nullptr;
11
12 Engine::Engine()
13 {
14 }
15
16 Engine* Engine::create()
17 {
18     LOG_DEBUG(TAG, "create");
19     std::lock_guard<std::mutex> lock(g_mutex);
20     if (g_instance)
21         return g_instance;
22     
23     Engine* instance (new Engine());
24     g_instance = instance;
25     return g_instance;
26 }
27
28 void Engine::destroy()
29 {
30     delete g_instance;
31 }
32
33 Engine::~Engine()
34 {
35 }
36
37 void Engine::setVideoSrc(const std::string& url)
38 {
39     videoSrc = url;
40 }
41
42 void Engine::start()
43 {
44     LOG_DEBUG(TAG, "start");
45     Person p;
46     for(auto& o: observer_list){
47         o->onPersonIn(p);
48     }
49 }
50
51 void Engine::addObserver(EngineObserver *observer)
52 {
53     observer_list.insert(observer);
54 }