#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