mrDarker
2025-06-03 0393d1ff2ebc378b3c4cff9b45f72ebc8a4ea516
SourceCode/Bond/Servo/CSlot.cpp
对比新文件
@@ -0,0 +1,152 @@
#include "stdafx.h"
#include "CSlot.h"
namespace SERVO {
   CSlot::CSlot()
   {
      m_nNo = 0;
      m_materialsType = MaterialsType::G1G2;
      m_pContext = nullptr;
      m_bEnable = FALSE;
      m_bLock = FALSE;
      m_pContext = nullptr;
   }
   CSlot::~CSlot()
   {
      if (m_pContext != nullptr) {
         m_pContext->release();
         m_pContext = nullptr;
      }
   }
   BOOL CSlot::isEnable()
   {
      return m_bEnable;
   }
   void CSlot::enable()
   {
      m_bEnable = TRUE;
   }
   void CSlot::disable()
   {
      m_bEnable = FALSE;
   }
   BOOL CSlot::isLock()
   {
      return m_bLock;
   }
   void CSlot::lock()
   {
      m_bLock = TRUE;
   }
   void CSlot::unlock()
   {
      m_bLock = FALSE;
   }
   int CSlot::getPosition()
   {
      return m_nPosition;
   }
   void CSlot::setPosition(int position)
   {
      m_nPosition = position;
   }
   int CSlot::getNo()
   {
      return m_nNo;
   }
   void CSlot::setNo(int no)
   {
      m_nNo = no;
   }
   MaterialsType CSlot::getType()
   {
      return m_materialsType;
   }
   void CSlot::setType(MaterialsType type)
   {
      m_materialsType = type;
   }
   std::string& CSlot::getName()
   {
      return m_strName;
   }
   void CSlot::setName(const char* pszName)
   {
      m_strName = pszName;
   }
   BOOL CSlot::isEmpty()
   {
      return m_pContext == nullptr;
   }
   void CSlot::setContext(CContext* pContext)
   {
      if (pContext != nullptr) {
         pContext->release();
      }
      m_pContext = pContext;
      if (m_pContext != nullptr) {
         m_pContext->addRef();
      }
   }
   CContext* CSlot::getContext()
   {
      return m_pContext;
   }
   void CSlot::serialize(CArchive& ar)
   {
      if (ar.IsStoring()) {
         ar << m_nPosition;
         ar << m_nNo;
         ar << (int)m_materialsType;
         WriteString(ar, m_strName);
         ar << (__int64)m_pContext;
         ar << m_bEnable;
         ar << m_bLock;
      }
      else {
         int i32;
         __int64 i64;
         ar >> m_nPosition;
         ar >> m_nNo;
         ar >> i32; m_materialsType = (MaterialsType)i32;
         ReadString(ar, m_strName);
         ar >> i64; m_pContext = (CContext*)i64;
         ar >> m_bEnable;
         ar >> m_bLock;
      }
   }
   void CSlot::WriteString(CArchive& ar, std::string& string)
   {
      CString strTemp = string.c_str();
      ar << strTemp;
   }
   void CSlot::ReadString(CArchive& ar, std::string& string)
   {
      CString strTemp;
      ar >> strTemp;
      string = (LPTSTR)(LPCTSTR)strTemp;
   }
}