#include "stdafx.h" #include "CArm.h" namespace SERVO { CArm::CArm() : CEquipment() { } CArm::~CArm() { } const char* CArm::getClassName() { static char* pszName = "CArm"; return pszName; } void CArm::init() { CEquipment::init(); } void CArm::term() { CEquipment::term(); } // ±ØÐëҪʵÏÖµÄÐ麯Êý£¬Ôڴ˳õʼ»¯PinÁбí void CArm::initPins() { } // ±ØÐëҪʵÏÖµÄÐ麯Êý£¬Ôڴ˳õʼ»¯SlotÐÅÏ¢ void CArm::initSlots() { } void CArm::onTimer(UINT nTimerid) { CEquipment::onTimer(nTimerid); } void CArm::serialize(CArchive& ar) { CEquipment::serialize(ar); } void CArm::getAttributeVector(CAttributeVector& attrubutes) { __super::getAttributeVector(attrubutes); } int CArm::recvIntent(CPin* pPin, CIntent* pIntent) { return __super::recvIntent(pPin, pIntent); } int CArm::tempStore(CGlass* pGlass) { // Ô­£º±£Ö¤ÁбíÖÐÖ»´æ´¢Ò»¸öÎïÁÏ // ÐÞ¸ÄΪ£ºÏÈÇå¿Õ֮ǰµÄ£¬ÔÙÌí¼Óµ±Ç°pGlass, Èç¹ûpGlassÓÐbuddy£¬Ò²Òª¼ÓÈëÁбíÖÐ Lock(); for (auto item : m_glassList) { item->release(); } m_glassList.clear(); addGlassToList(pGlass); if (pGlass->getBuddy() != nullptr) { addGlassToList(pGlass->getBuddy()); } Unlock(); if (m_listener.onDataChanged != nullptr) { m_listener.onDataChanged(this, 0); } return 0; } int CArm::tempFetchOut(OUT CGlass*& pGlass) { Lock(); if (m_glassList.empty()) { Unlock(); return -1; } pGlass = m_glassList.front(); pGlass->addRef(); for (auto item : m_glassList) { item->release(); } m_glassList.clear(); Unlock(); if (m_listener.onDataChanged != nullptr) { m_listener.onDataChanged(this, 0); } return 0; } }