#include "StdAfx.h"
|
#include "MBBaseAttachDocMgr.h"
|
|
IMPLEMENT_DYNAMIC(CMBBaseAttachDocMgr, CMBAbstBaseObj)
|
|
CMBBaseAttachDocMgr::CMBBaseAttachDocMgr(void)
|
{
|
RemoveAllAttachObj();
|
}
|
|
|
CMBBaseAttachDocMgr::~CMBBaseAttachDocMgr(void)
|
{
|
RemoveAllAttachObj();
|
}
|
|
bool CMBBaseAttachDocMgr::AddAttachObj(CMBBaseAttachDocObj *pAttachDocObj)
|
{
|
if( NULL == pAttachDocObj || pAttachDocObj->m_strID.IsEmpty() )
|
return false;
|
|
CMBBaseAttachDocObjMap::iterator it;
|
CString strID;
|
|
strID = pAttachDocObj->m_strID;
|
it = m_mapAttachObj.find(strID);
|
|
// Èç¹ûÕҵõ½ ·µ»Ø
|
if( it != m_mapAttachObj.end() )
|
return false;
|
|
m_mapAttachObj[strID] = pAttachDocObj;
|
m_vecotrAttachObj.push_back(pAttachDocObj);
|
return true;
|
}
|
|
CMBBaseAttachDocObj* CMBBaseAttachDocMgr::GetAttachObj( CString strID )
|
{
|
if( strID.IsEmpty() )
|
{
|
return NULL;
|
}
|
|
CMBBaseAttachDocObjMap::iterator it;
|
CMBBaseAttachDocObj *pAttachDocObj = NULL;
|
|
it = m_mapAttachObj.find(strID);
|
|
if( it!= m_mapAttachObj.end() )
|
pAttachDocObj = it->second;
|
|
return pAttachDocObj;
|
}
|
|
|
bool CMBBaseAttachDocMgr::RemoveAllAttachObj()
|
{
|
CMBBaseAttachDocObjMap::iterator it;
|
CMBBaseAttachDocObj *pAttachDocObj = NULL;
|
|
for( it = m_mapAttachObj.begin();it != m_mapAttachObj.end();it++ )
|
{
|
pAttachDocObj = it->second;
|
delete pAttachDocObj;
|
pAttachDocObj = NULL;
|
}
|
m_mapAttachObj.clear();
|
m_vecotrAttachObj.clear();
|
|
return true;
|
}
|
|
bool CMBBaseAttachDocMgr::GetBaseObjVector( CMBBaseObjVector &vectorObj )
|
{
|
CMBBaseAttachDocObjVector::iterator it;
|
CMBBaseAttachDocObj *pAttachDocObj = NULL;
|
|
for( it = m_vecotrAttachObj.begin();it != m_vecotrAttachObj.end();it++ )
|
{
|
pAttachDocObj = *it;
|
vectorObj.push_back(pAttachDocObj);
|
}
|
|
return true;
|
}
|
|
bool CMBBaseAttachDocMgr::RemoveAttachObj( CMBBaseAttachDocObj *pAttachDocObj )
|
{
|
bool bDelte = false;
|
if( NULL == pAttachDocObj )
|
return false;
|
CMBBaseAttachDocObjMap::iterator it = m_mapAttachObj.find(pAttachDocObj->m_strID);
|
|
if( it!= m_mapAttachObj.end() )
|
{
|
bDelte = true;
|
m_mapAttachObj.erase(it);
|
}
|
CMBBaseAttachDocObjVector::iterator it1 = std::find(m_vecotrAttachObj.begin( ), m_vecotrAttachObj.end( ), pAttachDocObj); //²éÕÒ3
|
if( it1 != m_vecotrAttachObj.end( ) ){
|
bDelte = true;
|
m_vecotrAttachObj.erase(it1);
|
}
|
if( bDelte ){
|
delete pAttachDocObj;
|
pAttachDocObj = NULL;
|
}
|
return true;
|
}
|
|
bool CMBBaseAttachDocMgr::RemoveAttachObj( CString strID )
|
{
|
CMBBaseAttachDocObj *pBase= GetAttachObj( strID );
|
return RemoveAttachObj( pBase );
|
}
|
|
void CMBBaseAttachDocMgr::GetAttachObjMap( CMBBaseAttachDocObjMap &mapAttachObj)
|
{
|
mapAttachObj.clear();
|
mapAttachObj = m_mapAttachObj;
|
}
|
|
void CMBBaseAttachDocMgr::GetAttachObjVector( CMBBaseAttachDocObjVector &vecotrAttachObj)
|
{
|
vecotrAttachObj.clear();
|
vecotrAttachObj = m_vecotrAttachObj;
|
}
|
|
|
int CMBBaseAttachDocMgr::GetCount()
|
{
|
return m_mapAttachObj.size();
|
}
|
|
|