#include "StdAfx.h"
|
#include "MBBaseHisDocMgr.h"
|
|
IMPLEMENT_DYNAMIC(CMBBaseHisDocMgr, CMBAbstBaseObj)
|
|
CMBBaseHisDocMgr::CMBBaseHisDocMgr(void)
|
{
|
RemoveAllHisDocObj();
|
}
|
|
|
CMBBaseHisDocMgr::~CMBBaseHisDocMgr(void)
|
{
|
RemoveAllHisDocObj();
|
}
|
|
bool CMBBaseHisDocMgr::AddHisDocObj(CMBBaseHisDocObj *pObj)
|
{
|
if( NULL == pObj || pObj->m_strHistoryID.IsEmpty() )
|
return false;
|
|
CMBBaseHisDocObjMap::iterator it;
|
CString strHistoryID;
|
|
strHistoryID = pObj->m_strHistoryID;
|
it = m_mapObj.find(strHistoryID);
|
|
// Èç¹ûÕҵõ½ ·µ»Ø
|
if( it != m_mapObj.end() )
|
return false;
|
|
m_mapObj[strHistoryID] = pObj;
|
m_vecotrObj.push_back(pObj);
|
return true;
|
}
|
|
CMBBaseHisDocObj* CMBBaseHisDocMgr::GetHisDocObj( CString strHistoryID )
|
{
|
if( strHistoryID.IsEmpty() )
|
{
|
return NULL;
|
}
|
|
CMBBaseHisDocObjMap::iterator it;
|
CMBBaseHisDocObj *pObj = NULL;
|
|
it = m_mapObj.find(strHistoryID);
|
|
if( it!= m_mapObj.end() )
|
pObj = it->second;
|
|
return pObj;
|
}
|
|
// Çå¿ÕÈÝÆ÷
|
void CMBBaseHisDocMgr::EmptyContainer()
|
{
|
m_mapObj.clear();
|
m_vecotrObj.clear();
|
}
|
|
bool CMBBaseHisDocMgr::RemoveAllHisDocObj()
|
{
|
CMBBaseHisDocObjMap::iterator it;
|
CMBBaseHisDocObj *pObj = NULL;
|
|
for( it = m_mapObj.begin();it != m_mapObj.end();it++ )
|
{
|
pObj = it->second;
|
delete pObj;
|
pObj = NULL;
|
}
|
m_mapObj.clear();
|
m_vecotrObj.clear();
|
|
return true;
|
}
|
|
bool CMBBaseHisDocMgr::GetBaseObjVector( CMBBaseObjVector &vectorObj )
|
{
|
CMBBaseHisDocObjVector::iterator it;
|
CMBBaseHisDocObj *pObj = NULL;
|
|
for( it = m_vecotrObj.begin();it != m_vecotrObj.end();it++ )
|
{
|
pObj = *it;
|
vectorObj.push_back(pObj);
|
}
|
|
return true;
|
}
|
|
bool CMBBaseHisDocMgr::RemoveHisDocObj( CMBBaseHisDocObj *pObj )
|
{
|
bool bDelte = false;
|
if( NULL == pObj )
|
return false;
|
|
CMBBaseHisDocObjMap::iterator it = m_mapObj.find(pObj->m_strHistoryID);
|
|
if( it!= m_mapObj.end() )
|
{
|
bDelte = true;
|
m_mapObj.erase(it);
|
}
|
CMBBaseHisDocObjVector::iterator it1 = std::find(m_vecotrObj.begin( ), m_vecotrObj.end( ), pObj); //²éÕÒ3
|
if( it1 != m_vecotrObj.end( ) ){
|
bDelte = true;
|
m_vecotrObj.erase(it1);
|
}
|
if( bDelte ){
|
delete pObj;
|
pObj = NULL;
|
}
|
return true;
|
}
|
|
// ÒÆ³ýÎļþÐÅÏ¢
|
bool CMBBaseHisDocMgr::RemoveHisDocObj( CString strHistoryID )
|
{
|
CMBBaseHisDocObj *pBase= GetHisDocObj( strHistoryID );
|
return RemoveHisDocObj( pBase );
|
}
|
|
void CMBBaseHisDocMgr::GetHisDocObjMap( CMBBaseHisDocObjMap &mapObj)
|
{
|
mapObj.clear();
|
mapObj = m_mapObj;
|
}
|
|
void CMBBaseHisDocMgr::GetHisDocObjVector( CMBBaseHisDocObjVector &vecotrObj)
|
{
|
vecotrObj.clear();
|
vecotrObj = m_vecotrObj;
|
}
|
|
int CMBBaseHisDocMgr::GetCount()
|
{
|
return m_mapObj.size();
|
}
|
|
|