#include "stdafx.h"
|
#include "CPath.h"
|
#include "ToolUnits.h"
|
|
|
namespace SERVO {
|
CPath::CPath()
|
{
|
m_nSiteID = 0;
|
m_timeOut = 0;
|
m_timeIn = CToolUnits::getTimestamp();
|
m_pPrev = nullptr;
|
m_pNext = nullptr;
|
}
|
|
CPath::CPath(unsigned int nSiteId)
|
{
|
m_nSiteID = nSiteId;
|
m_timeOut = 0;
|
m_timeIn = CToolUnits::getTimestamp();
|
m_pPrev = nullptr;
|
m_pNext = nullptr;
|
}
|
|
CPath::~CPath()
|
{
|
|
}
|
|
void CPath::getDescription(std::string& strOut)
|
{
|
strOut.clear();
|
strOut = "CPath<SiteID:";
|
strOut = strOut + std::to_string(m_nSiteID);
|
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_nSiteID;
|
ar << m_timeIn;
|
ar << m_timeOut;
|
ar << (ULONGLONG)m_pNext;
|
if (m_pNext != nullptr) {
|
m_pNext->serialize(ar);
|
}
|
}
|
else {
|
ar >> m_nSiteID;
|
ar >> m_timeIn;
|
ar >> m_timeOut;
|
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::getSiteID()
|
{
|
return m_nSiteID;
|
}
|
|
ULONGLONG CPath::getInTime()
|
{
|
return m_timeIn;
|
}
|
|
void CPath::setOutTime(ULONGLONG time)
|
{
|
m_timeOut = time;
|
}
|
|
ULONGLONG CPath::getOutTime()
|
{
|
return m_timeOut;
|
}
|
|
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;
|
}
|
}
|