#pragma once #include #include "OTSParticle.h" #include namespace OTSClassifyEngine { using std::string; using namespace OTSDATA; //define interface class __declspec(dllexport) IClassifyEngine { public: IClassifyEngine() {}; virtual ~IClassifyEngine() {}; virtual bool Init() = 0;// virtual bool ClassifyBySpectrum(COTSParticlePtr particle, CPosXrayPtr xray) = 0;//belong to spectrum engine virtual bool ClassifyExpression(COTSParticlePtr particle, CPosXrayPtr xray) = 0;//belong to expression engine virtual bool ClassifyByExpressionTemporarySpectrum(COTSParticlePtr particle, CPosXrayPtr xray) = 0;//belong to expression engine virtual bool ClassifyIncA(COTSParticlePtr particle,int SteelTech, CPosXrayPtr xray) = 0;//belong to inca engine virtual bool IfNeedMaxEDS(COTSParticlePtr particle, CPosXrayPtr xray, double& MaxEDSTime) = 0;//belong to expression engine virtual bool ZeroElementProcess(COTSParticlePtr particle)=0; }; typedef std::shared_ptr __declspec(dllexport) CLEEnginePtr; __declspec(dllexport) CLEEnginePtr GetInclutionEngine();//will be initialized at the first time.and it's a singleton object. __declspec(dllexport) CLEEnginePtr GetParticleEngine(std::string libName);//will be initialized at the first time.and it's a singleton object. __declspec(dllexport) CLEEnginePtr GetCurveCompareEngine(std::string libName);//will be initialized at the first time.and it's a singleton object. }