#include "stdafx.h" #include "CJobDataB.h" #include "ToolUnits.h" namespace SERVO { CJobDataB::CJobDataB() { m_nCassetteSequenceNo = 0; m_nJobSequenceNo = 0; } CJobDataB::CJobDataB(CJobDataB&& other) noexcept { copy(&other); } CJobDataB::~CJobDataB() { } void CJobDataB::copy(CJobDataB* pScr) { m_nCassetteSequenceNo = pScr->m_nCassetteSequenceNo; m_nJobSequenceNo = pScr->m_nJobSequenceNo; m_strGlassId = pScr->m_strGlassId; } int CJobDataB::getCassetteSequenceNo() { return m_nCassetteSequenceNo; } void CJobDataB::setCassetteSequenceNo(int no) { m_nCassetteSequenceNo = no; } int CJobDataB::getJobSequenceNo() { return m_nJobSequenceNo; } void CJobDataB::setJobSequenceNo(int no) { m_nJobSequenceNo = no; } std::string& CJobDataB::getGlassId() { return m_strGlassId; } void CJobDataB::setGlassId(const char* pszGlassId) { m_strGlassId = pszGlassId; } int CJobDataB::serialize(char* pszBuffer, int nBufferSize) { if (nBufferSize < JOBDATAB_SIZE) return -1; int index = 0; memcpy(&pszBuffer[index], &m_nCassetteSequenceNo, sizeof(short)); index += sizeof(short); memcpy(&pszBuffer[index], &m_nJobSequenceNo, sizeof(short)); index += sizeof(short); int strLen = min(20, m_strGlassId.size()); memcpy(&pszBuffer[index], m_strGlassId.c_str(), strLen); index += 20; return JOBDATAB_SIZE; } int CJobDataB::unserialize(const char* pszBuffer, int nBufferSize) { if (nBufferSize < 14 * 2) return -1; int index = 0; memcpy(&m_nCassetteSequenceNo, &pszBuffer[index], sizeof(short)); index += sizeof(short); memcpy(&m_nJobSequenceNo, &pszBuffer[index], sizeof(short)); index += sizeof(short); CToolUnits::convertString(&pszBuffer[index], 20, m_strGlassId); index += 20; return 14 * 2; } }