#ifndef YALGORITHM #define YALGORITHM #include #include #include #include "dataalgorithm_interface.h" #include "ymorpherethread.h" class YAlgorithm{ protected: QMutex mutex; QMap m_mapTotalResult; QMap m_mapParam; QMap ** m_mapThreadResult; DataAlgorithmInterface* m_pDAInterface; int m_nThread; YMorphereThread** m_pYMThread; protected: void setThreadNumber(int nThread); QMap KeywordFilter(QMap mapResult); QMap RankFilter(QMap mapResult); public: YAlgorithm(); ~YAlgorithm(); QMap getResult(); void setParam(QMap mapParam); QMutex *getMutex(); void setDataAlgorithmInterface(DataAlgorithmInterface* pDAInterface); void clearParam(); void clearResult(); void init(); void EmergeThreadResult(); int getThreadNumber(); virtual void Start(); }; class YASingleton { private: static YAlgorithm* algorithm; YASingleton(); ~YASingleton(); public: static YAlgorithm* getInstance(); }; class YAFactory { private: QMap m_mapAlgorithm; static YAFactory* instance; YAFactory(); ~YAFactory(); public: static YAFactory* getInstance(); YAlgorithm* getYAlgorithm(QMap mapParam); }; class YTwoDepthAlgorithm:public YAlgorithm { public: void Start(); }; class YTwoDepthAAlgorithm:public YAlgorithm { public: void Start(); }; class YPlatformAlgorithm:public YAlgorithm { public: void Start(); }; #endif // YALGORITHM