#pragma once #include "CHThreadPools/WorkThreadPools.h" class CSimulationData { public: CSimulationData() { nModuleType = 0; nTriggerType = 0; nFrameCount = 0; nFrameRate = 0; } public: int nModuleType; // grab, snap int nTriggerType; // external, internal int nFrameCount; // frame cnt int nFrameRate; }; class CSimulationThreadData : public CWorkThreadData { public: CSimulationThreadData(PVOID pPtr) : CWorkThreadData(pPtr) { } virtual ~CSimulationThreadData() { } CSimulationData simulationData; }; interface ISimulationThread2Parent { virtual void IST2P_RunThreadProcess(const CSimulationData& threadData) = 0; }; class AFX_EXT_CLASS CSimulationThread : public CWorkThreadPools { public: CSimulationThread(void); virtual ~CSimulationThread(void); void SetST2P(ISimulationThread2Parent* pST2P) { m_pST2P = pST2P; } BOOL AddThreadData(const CSimulationData& data); protected: virtual void WorkThreadProcess(PVOID pParameter); private: ISimulationThread2Parent* m_pST2P; };