#include "StdAfx.h" #include "MBBaseCabinetMgr.h" IMPLEMENT_DYNAMIC(CMBBaseCabinetMgr, CMBAbstBaseObj) CMBBaseCabinetMgr::CMBBaseCabinetMgr(void) { RemoveAllCabinetObj(); } CMBBaseCabinetMgr::~CMBBaseCabinetMgr(void) { RemoveAllCabinetObj(); } bool CMBBaseCabinetMgr::AddCabinetObj(CMBBaseCabinetObj *pCabinetObj) { if( NULL == pCabinetObj || pCabinetObj->m_strID.IsEmpty() ) return false; CMBBaseCabinetObjMap::iterator it; CString strID; strID = pCabinetObj->m_strID; it = m_mapCabinetObj.find(strID); // Èç¹ûÕҵõ½ ·µ»Ø if( it != m_mapCabinetObj.end() ) return false; m_mapCabinetObj[strID] = pCabinetObj; m_vectorCabinetObj.push_back(pCabinetObj); return true; } CMBBaseCabinetObj* CMBBaseCabinetMgr::GetCabinetObj( CString strID ) { if( strID.IsEmpty() ) { return NULL; } CMBBaseCabinetObjMap::iterator it; CMBBaseCabinetObj *pCabinetObj = NULL; it = m_mapCabinetObj.find(strID); if( it!= m_mapCabinetObj.end() ) pCabinetObj = it->second; return pCabinetObj; } bool CMBBaseCabinetMgr::RemoveAllCabinetObj() { CMBBaseCabinetObjMap::iterator it; CMBBaseCabinetObj *pCabinetObj = NULL; for( it = m_mapCabinetObj.begin();it != m_mapCabinetObj.end();it++ ) { pCabinetObj = it->second; delete pCabinetObj; pCabinetObj = NULL; } m_mapCabinetObj.clear(); m_vectorCabinetObj.clear(); return true; } // Çå¿ÕÈÝÆ÷ void CMBBaseCabinetMgr::EmptyContainer() { m_mapCabinetObj.clear(); m_vectorCabinetObj.clear(); } bool CMBBaseCabinetMgr::GetBaseObjVector( CMBBaseObjVector &vectorObj ) { CMBBaseCabinetObjVector::iterator it; CMBBaseCabinetObj *pCabinetObj = NULL; for( it = m_vectorCabinetObj.begin();it != m_vectorCabinetObj.end();it++ ) { pCabinetObj = *it; vectorObj.push_back(pCabinetObj); } return true; } void CMBBaseCabinetMgr::GetCabinetObjMap( CMBBaseCabinetObjMap &mapCabinetObj) { mapCabinetObj.clear(); mapCabinetObj = m_mapCabinetObj; } void CMBBaseCabinetMgr::GetCabinetObjVector( CMBBaseCabinetObjVector &vectorCabinetObj) { vectorCabinetObj.clear(); vectorCabinetObj = m_vectorCabinetObj; } int CMBBaseCabinetMgr::GetCount() { return m_mapCabinetObj.size(); }