Add shared ptr
[trackerpp.git] / src / Engine.h
index ebf65c5..bcfc786 100644 (file)
@@ -6,30 +6,35 @@
 #include<set>
 #include "Tracker.h"
 #include "Detector.h"
+#include "MultiTracker.h"
 #include "VideoReader.h"
+#include "SharedPtr.h"
 
 namespace suanzi{
 
 class EngineObserver;
 
+TK_DECLARE_PTR(Engine);
+
 class Engine
 {
 public:
-    static Engine* create();
+    static EnginePtr create();
     void destroy();
+    virtual ~Engine();
+
     virtual void start();
     void addObserver(EngineObserver* o);
     void setVideoSrc(VideoSrcType type, const std::string& url);
 
 private:
     Engine();
-    virtual ~Engine();
     void run();
-//    Tracker* tracker;
-    Detector* detector;
+    DetectorPtr detector;
+    MultiTrackerPtr multiTracker;
     std::set<EngineObserver *> observer_list;
     std::string videoSrc;
-    VideoReader* reader;
+    VideoReaderPtr reader;
 };
 
 struct Person