/****************************************************************************** Copyright(C):2015~2018 hzleaper FileName:ImgProc.h Author:zhikun wu Email:zk.wu@hzleaper.com Tools:vs2010 pc on company Created:2015/03/26 History:26:3:2015 18:03 *******************************************************************************/ #include "iImgProc.h" /*#include "ImageAlgorithm.h"*/ #include "QZkMutexMap.h" #include "baseClass.h" #include #include #include "LoadAlgorithm.h" //#include "AlgorithmOption.h" #include "LoadAlgorithm.h" class CImgProc : public IImgProc { public: CImgProc(IMGPROC_IN_PARAM* pParam); virtual ~CImgProc(void); int InitProc(); void FreeProc(); private: virtual int IImageProcess(class IImageObject* pImgObj, class IDetectorEngine* pDE = NULL); virtual class IAlgorithmOption* IGetAlgorithmOption(int nAlgorithm); private: //static CAlgorithmOption* createAlgorithmOption(const int& k, void* pData); static void releaseAlgorithm(const Qt::HANDLE& k, class IAlgorithm*& v, void* pData); // static void releaseAlgorithmOption(const int& k, CAlgorithmOption*& v, void* pData); //class IImageProc* m_pImgProc; public: static TP_GLOBAL_DATA* s_pGlobalData; const static char cs_strCfgName[]; private: bool m_bIsInited; //QSqliteAlgorithm m_dbAlg; //QZkMutexMap m_algorithms; QAtomicInt m_nAlgorithmsUsings; // QZkMutexMap m_algorithmOptions; //class CLoadAlgorithm* m_pLibAlgorithm; QZkMutexMap m_algorithmDlls; CLoadAlgorithm* m_pDefAlgorithmDll;//nAlgorithm = 0; tpAlgorithm.dll struct tagALGORITHM_API{ class IAlgorithm* pApi; class CLoadAlgorithm* pDll; }; QZkMutexMap> m_threadAlgorithms; static CLoadAlgorithm* createAlgorithmDll(const QString& k, void* pData); static void releaseAlgorithmApis(QMap& v, void* pData); static void releaseAlgorithmDlls(CLoadAlgorithm*& v, void* pData); };