Files
clients/MorphereAnalyzer/yalgorithm.h
admin 9bca6154fd d3view 수정
git-svn-id: svn://192.168.0.12/source@177 8346c931-da38-4b9b-9d4c-e48b93cbd075
2015-08-31 06:51:47 +00:00

80 lines
1.6 KiB
C++

#ifndef YALGORITHM
#define YALGORITHM
#include <QMutex>
#include <QMap>
#include <QString>
#include "dataalgorithm_interface.h"
#include "ymorpherethread.h"
class YAlgorithm{
protected:
QMutex mutex;
QMap <QString, int> m_mapTotalResult;
QMap <QString, QString> m_mapParam;
QMap <QString, int>** m_mapThreadResult;
DataAlgorithmInterface* m_pDAInterface;
int m_nThread;
YMorphereThread** m_pYMThread;
protected:
void setThreadNumber(int nThread);
QMap <QString, int> KeywordFilter(QMap <QString, int> mapResult);
QMap <QString, int> RankFilter(QMap <QString, int> mapResult);
public:
YAlgorithm();
~YAlgorithm();
QMap <QString, int> getResult();
void setParam(QMap <QString, QString> 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<QString, YAlgorithm*> m_mapAlgorithm;
static YAFactory* instance;
YAFactory();
~YAFactory();
public:
static YAFactory* getInstance();
YAlgorithm* getYAlgorithm(QMap<QString, QString> mapParam);
};
class YTwoDepthAlgorithm:public YAlgorithm
{
public:
void Start();
};
class YPlatformAlgorithm:public YAlgorithm
{
public:
void Start();
};
#endif // YALGORITHM