#include "stdafx.h"
|
#include "CPath.h"
|
#include "ToolUnits.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<EqID:";
|
strOut = strOut + std::to_string(m_nEqID);
|
strOut = strOut + ",Unit:";
|
strOut = strOut + std::to_string(m_nUnit);
|
strOut = strOut + ",InTime:";
|
strOut = strOut + CToolUnits::timeToString2(m_timeIn);
|
strOut = strOut + ",OutTime:";
|
strOut = strOut + (m_timeOut == 0 ? "" : CToolUnits::timeToString2(m_timeOut));
|
strOut = strOut + ">";
|
}
|
|
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;
|
}
|
}
|