#include "stdafx.h" #include "CPath.h" #include "ToolUnits.h" #include "CServoUtilsTool.h" namespace SERVO { CPath::CPath() { m_nEqID = 0; m_timeOut = 0; m_timeIn = CToolUnits::getTimestamp(); m_bProcessed = FALSE; m_inspResult = InspResult::NotInspected; m_pPrev = nullptr; m_pNext = nullptr; } CPath::CPath(unsigned int nEqId, unsigned int nUnit) { m_nEqID = nEqId; m_nUnit = nUnit; m_timeOut = 0; m_timeIn = CToolUnits::getTimestamp(); m_bProcessed = FALSE; m_inspResult = InspResult::NotInspected; m_pPrev = nullptr; m_pNext = nullptr; } CPath::~CPath() { } void CPath::getDescription(std::string& strOut) { strOut.clear(); strOut = "CPath"; } void CPath::getSimpleDescription(std::string& strOut) { strOut = CServoUtilsTool::getEqUnitName(m_nEqID, m_nUnit); } void CPath::serialize(CArchive& ar) { if (ar.IsStoring()) { ar << m_nEqID; ar << m_nUnit; ar << m_timeIn; ar << m_timeOut; ar << m_bProcessed; ar << (int)m_inspResult; ar << (ULONGLONG)m_pNext; if (m_pNext != nullptr) { m_pNext->serialize(ar); } } else { int temp; ar >> m_nEqID; ar >> m_nUnit; ar >> m_timeIn; ar >> m_timeOut; ar >> m_bProcessed; ar >> temp; m_inspResult = (InspResult)temp; ULONGLONG ulNext; ar >> ulNext; if ((CPath*)ulNext != nullptr) { CPath* pPath = new CPath(); pPath->serialize(ar); pPath->m_pPrev = this; this->m_pNext = pPath; } } } unsigned int CPath::getEqID() { return m_nEqID; } unsigned int CPath::getUnit() { return m_nUnit; } void CPath::setInTime(ULONGLONG time) { m_timeIn = time; } ULONGLONG CPath::getInTime() { return m_timeIn; } void CPath::setOutTime(ULONGLONG time) { m_timeOut = time; } ULONGLONG CPath::getOutTime() { return m_timeOut; } void CPath::processEnd() { m_bProcessed = TRUE; } BOOL CPath::isProcessEnd() { return m_bProcessed; } void CPath::setInspResult(InspResult result) { m_inspResult = result; } InspResult CPath::getInspResult() { return m_inspResult; } CPath* CPath::getPrev() { return m_pPrev; } CPath* CPath::getNext() { return m_pNext; } void CPath::addPath(CPath* pPath) { CPath* pTail = getTailPath(); ASSERT(pTail); pTail->m_pNext = pPath; pPath->m_pPrev = this; } CPath* CPath::getTailPath() { CPath* pPath = this; while (pPath->m_pNext != nullptr) { pPath = pPath->m_pNext; } return pPath; } CPath* CPath::getHeadPath() { CPath* pPath = this; while (pPath->m_pPrev != nullptr) { pPath = pPath->m_pPrev; } return pPath; } }