#include "StdAfx.h"
|
#include "MBBaseDocLogMgr.h"
|
|
IMPLEMENT_DYNAMIC(CMBBaseDocLogMgr, CMBAbstBaseObj)
|
|
CMBBaseDocLogMgr::CMBBaseDocLogMgr(void)
|
{
|
RemoveAllDocLogObj();
|
}
|
|
|
CMBBaseDocLogMgr::~CMBBaseDocLogMgr(void)
|
{
|
RemoveAllDocLogObj();
|
}
|
|
bool CMBBaseDocLogMgr::AddDocLogObj(CMBBaseDocLogObj *pDocLogObj)
|
{
|
if( NULL == pDocLogObj || pDocLogObj->m_strID.IsEmpty() )
|
return false;
|
|
CMBBaseDocLogObjMap::iterator it;
|
CString strID;
|
|
strID = pDocLogObj->m_strID;
|
it = m_mapDocLogObj.find(strID);
|
|
// Èç¹ûÕҵõ½ ·µ»Ø
|
if( it != m_mapDocLogObj.end() )
|
return false;
|
|
m_mapDocLogObj[strID] = pDocLogObj;
|
m_vecotrDocLogObj.push_back(pDocLogObj);
|
return true;
|
}
|
|
CMBBaseDocLogObj* CMBBaseDocLogMgr::GetDocLogObj( CString strID )
|
{
|
if( strID.IsEmpty() )
|
{
|
return NULL;
|
}
|
|
CMBBaseDocLogObjMap::iterator it;
|
CMBBaseDocLogObj *pDocLogInfo = NULL;
|
|
it = m_mapDocLogObj.find(strID);
|
|
if( it!= m_mapDocLogObj.end() )
|
pDocLogInfo = it->second;
|
|
return pDocLogInfo;
|
}
|
|
|
bool CMBBaseDocLogMgr::RemoveAllDocLogObj()
|
{
|
CMBBaseDocLogObjMap::iterator it;
|
CMBBaseDocLogObj *pDocLogObj = NULL;
|
|
for( it = m_mapDocLogObj.begin();it != m_mapDocLogObj.end();it++ )
|
{
|
pDocLogObj = it->second;
|
delete pDocLogObj;
|
pDocLogObj = NULL;
|
}
|
m_mapDocLogObj.clear();
|
m_vecotrDocLogObj.clear();
|
return true;
|
}
|
|
bool CMBBaseDocLogMgr::GetBaseObjVector( CMBBaseObjVector &vectorObj )
|
{
|
CMBBaseDocLogObjVector::iterator it;
|
CMBBaseDocLogObj *pDocLogObj = NULL;
|
|
for( it = m_vecotrDocLogObj.begin();it != m_vecotrDocLogObj.end();it++ )
|
{
|
pDocLogObj = *it;
|
vectorObj.push_back(pDocLogObj);
|
}
|
|
return true;
|
}
|
|
bool CMBBaseDocLogMgr::RemoveDocLogObj( CMBBaseDocLogObj *pDocLogObj )
|
{
|
bool bDelte = false;
|
if( NULL == pDocLogObj )
|
return false;
|
CMBBaseDocLogObjMap::iterator it = m_mapDocLogObj.find(pDocLogObj->m_strID);
|
|
if( it!= m_mapDocLogObj.end() )
|
{
|
bDelte = true;
|
m_mapDocLogObj.erase(it);
|
}
|
CMBBaseDocLogObjVector::iterator it1 = std::find(m_vecotrDocLogObj.begin( ), m_vecotrDocLogObj.end( ), pDocLogObj); //²éÕÒ3
|
if( it1 != m_vecotrDocLogObj.end( ) ){
|
bDelte = true;
|
m_vecotrDocLogObj.erase(it1);
|
}
|
if( bDelte ){
|
delete pDocLogObj;
|
pDocLogObj = NULL;
|
}
|
return true;
|
}
|
|
// ÒÆ³ýÎļþÐÅÏ¢
|
bool CMBBaseDocLogMgr::RemoveDocLogObj( CString strID )
|
{
|
CMBBaseDocLogObj *pBase= GetDocLogObj( strID );
|
return RemoveDocLogObj( pBase );
|
}
|
|
void CMBBaseDocLogMgr::GetDocLogObjMap( CMBBaseDocLogObjMap &mapDocLogObj)
|
{
|
mapDocLogObj.clear();
|
mapDocLogObj = m_mapDocLogObj;
|
}
|
|
void CMBBaseDocLogMgr::GetDocLogObjVector( CMBBaseDocLogObjVector &vecotrDocLogObj)
|
{
|
vecotrDocLogObj.clear();
|
vecotrDocLogObj = m_vecotrDocLogObj;
|
}
|
|
int CMBBaseDocLogMgr::GetCount()
|
{
|
return m_mapDocLogObj.size();
|
}
|
|
|