#include "StdAfx.h" #include "MBBaseAreaMgr.h" IMPLEMENT_DYNAMIC(CMBBaseAreaMgr, CMBAbstBaseObj) CMBBaseAreaMgr::CMBBaseAreaMgr(void) { RemoveAllAreaObj(); } CMBBaseAreaMgr::~CMBBaseAreaMgr(void) { RemoveAllAreaObj(); } // Ìí¼ÓÊý¾Ý bool CMBBaseAreaMgr::AddAreaObj(CMBBaseAreaObj *pAreaObj) { if( NULL == pAreaObj || pAreaObj->m_strID.IsEmpty() ) return false; CMBBaseAreaObjMap::iterator it; CString strID; strID = pAreaObj->m_strID; it = m_mapAreaObj.find(strID); // Èç¹ûÕҵõ½ ·µ»Ø if( it != m_mapAreaObj.end() ) return false; m_mapAreaObj[strID] = pAreaObj; m_vectorAreaObj.push_back(pAreaObj); return true; } // ²éÕÒ CMBBaseAreaObj *CMBBaseAreaMgr::GetAreaObj( CString strID ) { if( strID.IsEmpty() ) { return NULL; } CMBBaseAreaObjMap::iterator it; CMBBaseAreaObj *pAreaObj = NULL; it = m_mapAreaObj.find(strID); if( it!= m_mapAreaObj.end() ) pAreaObj = it->second; return pAreaObj; } // µÃµ½µÚÒ»¸öareaInfo CMBBaseAreaObj *CMBBaseAreaMgr::GetFirstAreaObj( ) { CMBBaseAreaObjVector::iterator it; it = m_vectorAreaObj.begin(); return *it; } // Çå¿ÕÈÝÆ÷ void CMBBaseAreaMgr::EmptyContainer() { m_mapAreaObj.clear(); m_vectorAreaObj.clear(); } // ÒÆ³ý bool CMBBaseAreaMgr::RemoveAllAreaObj() { CMBBaseAreaObjMap::iterator it; CMBBaseAreaObj *pAreaObj = NULL; for( it = m_mapAreaObj.begin();it != m_mapAreaObj.end();it++ ) { pAreaObj = it->second; delete pAreaObj; pAreaObj = NULL; } m_mapAreaObj.clear(); m_vectorAreaObj.clear(); return true; } bool CMBBaseAreaMgr::GetBaseObjVector( CMBBaseObjVector &vectorObj ) { CMBBaseAreaObjVector::iterator it; CMBBaseAreaObj *pAreaObj = NULL; for( it = m_vectorAreaObj.begin();it != m_vectorAreaObj.end();it++ ) { pAreaObj = *it; vectorObj.push_back(pAreaObj); } return true; } void CMBBaseAreaMgr::GetAreaObjMap( CMBBaseAreaObjMap &mapAreaObj) { mapAreaObj.clear(); mapAreaObj = m_mapAreaObj; } void CMBBaseAreaMgr::GetAreaObjVector( CMBBaseAreaObjVector &vectorAreaObj) { vectorAreaObj.clear(); vectorAreaObj = m_vectorAreaObj; }