#pragma once #include "otsdataconst.h" #include "OTSSample.h" namespace OTSMODEL { __declspec(dllexport) const OTS_MSR_THREAD_STATUS DEFAULT_MSR_THREAD_STATUS = OTS_MSR_THREAD_STATUS::READY; // CMsrSampleStatus command target class __declspec(dllexport) CMsrThreadStatus : public xmls::ISlo { /*protected: DECLARE_SERIAL(CMsrThreadStatus)*/ public: CMsrThreadStatus(); // constructor CMsrThreadStatus(const CMsrThreadStatus&); // copy constructor CMsrThreadStatus(CMsrThreadStatus*); // copy constructor CMsrThreadStatus& operator=(const CMsrThreadStatus&); // =operator BOOL operator==(const CMsrThreadStatus&); // ==operator virtual ~CMsrThreadStatus(); // destructor // serialization //void Serialize(CArchive& ar); void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode); // status OTS_MSR_THREAD_STATUS GetStatus() { return m_nStatus; } void SetStatus(OTS_MSR_THREAD_STATUS a_nStatus) { m_nStatus = a_nStatus; } // start time COleDateTime GetStartTime() { return m_timeStart; } void SetStartTime(COleDateTime a_timeStart) { m_timeStart = a_timeStart; } // used time COleDateTimeSpan GetUsedTime() { return m_timeUsed; } void SetUsedTime(COleDateTimeSpan a_timeUsed) { m_timeUsed = a_timeUsed; } // end time COleDateTime GetEndTime() { return m_timeEnd; } void SetEndTime(COleDateTime a_timeEnd) { m_timeEnd = a_timeEnd; } // completed samples COTSSamplesList& GetCompletedSamples() { return m_listCpldSamples; } void SetCompletedSamples(COTSSamplesList& a_listCpldSamples); // current start time COleDateTime GetCurrentStartTime() { return m_timeStartCur; } void SetCurrentStartTime(COleDateTime a_timeStartCur) { m_timeStartCur = a_timeStartCur; } // compute time BOOL ComputeTime(OTS_THREAD_TIME_TYPE a_nType); protected: // cleanup void Cleanup(); // initialization void Init(); // duplication void Duplicate(const CMsrThreadStatus& a_oSource); // status OTS_MSR_THREAD_STATUS m_nStatus; // start time COleDateTime m_timeStart; // used time COleDateTimeSpan m_timeUsed; // end time COleDateTime m_timeEnd; // completed samples COTSSamplesList m_listCpldSamples; // current start time COleDateTime m_timeStartCur; }; typedef std::shared_ptr __declspec(dllexport) CMsrThreadStatusPtr; typedef std::vector __declspec(dllexport) CMsrThreadStatusList; }