#pragma once #include #include "CHThreadPools/WorkThreadPools.h" class CDiagnosisManager; interface IDiagnosisProcessor2Parent; class CDiagnosisProcessData : public CWorkThreadData { public: CDiagnosisProcessData(PVOID pPtr) : CWorkThreadData(pPtr) { nThreadIdx = -1; nProcessMode = 0; } virtual ~CDiagnosisProcessData() { nThreadIdx = -1; nProcessMode = 0; } int nThreadIdx; int nProcessMode; }; class AFX_EXT_CLASS CDiagnosisProcessor : public CWorkThreadPools { public: CDiagnosisProcessor(); virtual ~CDiagnosisProcessor(); void SetDP2P(IDiagnosisProcessor2Parent* pDP2P) { m_pDP2P = pDP2P; } void SetManagerPtr(CDiagnosisManager* pPtr) { m_pManager = pPtr; } virtual BOOL StartProcess(int nProcessMode = 0); virtual void StopProcess(); BOOL IsCommandStop() { return !m_bStartProcess; } protected: virtual void WorkThreadProcess(PVOID pParameter); // CWorkThreadPools int ProcessAll(); int ProcessSquareness(); int ProcessWsi(); int ProcessFlatness(); int ProcessFlatness_Manual(); int ProcessSimulation(); BOOL CalculateSquareness(int nIndex); protected: IDiagnosisProcessor2Parent* m_pDP2P; CDiagnosisManager* m_pManager; BOOL m_bStartProcess; };