#include "StdAfx.h" #include "MBBaseAppMgr.h" IMPLEMENT_DYNAMIC(CMBBaseAppMgr, CMBAbstBaseObj) CMBBaseAppMgr::CMBBaseAppMgr(void) { RemoveAllAppObj(); } CMBBaseAppMgr::~CMBBaseAppMgr(void) { RemoveAllAppObj(); } bool CMBBaseAppMgr::AddAppObj(CMBBaseAppObj *pAppObj) { if( NULL == pAppObj || pAppObj->m_strID.IsEmpty() ) return false; CMBBaseAppObjMap::iterator it; CString strID; strID = pAppObj->m_strID; it = m_mapAppObj.find(strID); // Èç¹ûÕҵõ½ ·µ»Ø if( it != m_mapAppObj.end() ) return false; m_mapAppObj[strID] = pAppObj; //m_listSysAppInfo.push_back(pSysAppInfo); m_vectorAppObj.push_back(pAppObj); return true; } CMBBaseAppObj * CMBBaseAppMgr::GetAppObj( CString strID ) { if( strID.IsEmpty() ) { return NULL; } CMBBaseAppObjMap::iterator it; CMBBaseAppObj *pAppObj = NULL; it = m_mapAppObj.find(strID); if( it!= m_mapAppObj.end() ) pAppObj = it->second; return pAppObj; } bool CMBBaseAppMgr::HasAppObj( CMBBaseAppObj *pAppObj ) { if( pAppObj == NULL) return false; CMBBaseAppObjMap::iterator it; CMBBaseAppObj *pTmpAppObj = NULL; for( it = m_mapAppObj.begin();it != m_mapAppObj.end();it++ ) { pTmpAppObj = it->second; if( pAppObj == pTmpAppObj) return true; } return false; } bool CMBBaseAppMgr::RemoveAllAppObj() { CMBBaseAppObjMap::iterator it; CMBBaseAppObj *pAppObj = NULL; for( it = m_mapAppObj.begin();it != m_mapAppObj.end();it++ ) { pAppObj = it->second; delete pAppObj; pAppObj = NULL; } m_mapAppObj.clear(); m_vectorAppObj.clear(); return true; } // Çå¿ÕÈÝÆ÷ void CMBBaseAppMgr::EmptyContainer() { m_mapAppObj.clear(); m_vectorAppObj.clear(); } bool CMBBaseAppMgr::GetBaseObjVector( CMBBaseObjVector &vectorObj ) { CMBBaseAppObjVector::iterator it; CMBBaseAppObj *pAppObj = NULL; for( it = m_vectorAppObj.begin();it != m_vectorAppObj.end();it++ ) { pAppObj = *it; vectorObj.push_back(pAppObj); } return true; } void CMBBaseAppMgr::GetAppObjMap( CMBBaseAppObjMap &mapAppObj) { mapAppObj.clear(); mapAppObj = m_mapAppObj; } void CMBBaseAppMgr::GetAppObjVector( CMBBaseAppObjVector &vectorAppObj) { vectorAppObj.clear(); vectorAppObj = m_vectorAppObj; } int CMBBaseAppMgr::GetAppCount() { return m_mapAppObj.size(); }