#include "StdAfx.h"
|
#include "MBBaseTagDocMgr.h"
|
|
IMPLEMENT_DYNAMIC(CMBBaseTagDocMgr, CMBAbstBaseObj)
|
|
CMBBaseTagDocMgr::CMBBaseTagDocMgr(void)
|
{
|
RemoveAllTagDocObj();
|
m_bGetTagList = false;
|
}
|
|
|
CMBBaseTagDocMgr::~CMBBaseTagDocMgr(void)
|
{
|
RemoveAllTagDocObj();
|
}
|
|
bool CMBBaseTagDocMgr::AddTagDocObj(CMBBaseTagDocObj *pTagDocObj)
|
{
|
if( NULL == pTagDocObj || pTagDocObj->m_strName.IsEmpty() )
|
return false;
|
|
CMBBaseTagDocObjMap::iterator it;
|
CString strName;
|
|
strName = pTagDocObj->m_strName;
|
it = m_mapTagDocObj.find(strName);
|
|
// Èç¹ûÕҵõ½ ·µ»Ø
|
if( it != m_mapTagDocObj.end() )
|
return false;
|
|
m_mapTagDocObj[strName] = pTagDocObj;
|
m_vecotrTagDocObj.push_back(pTagDocObj);
|
return true;
|
}
|
|
CMBBaseTagDocObj* CMBBaseTagDocMgr::GetTagDocObj( CString strName )
|
{
|
if( strName.IsEmpty() )
|
{
|
return NULL;
|
}
|
|
CMBBaseTagDocObjMap::iterator it;
|
CMBBaseTagDocObj *pTagDocObj = NULL;
|
|
it = m_mapTagDocObj.find(strName);
|
|
if( it!= m_mapTagDocObj.end() )
|
pTagDocObj = it->second;
|
|
return pTagDocObj;
|
}
|
|
bool CMBBaseTagDocMgr::RemoveAllTagDocObj()
|
{
|
CMBBaseTagDocObjMap::iterator it;
|
CMBBaseTagDocObj *pTagDocObj = NULL;
|
|
for( it = m_mapTagDocObj.begin();it != m_mapTagDocObj.end();it++ )
|
{
|
pTagDocObj = it->second;
|
delete pTagDocObj;
|
pTagDocObj = NULL;
|
}
|
|
m_mapTagDocObj.clear();
|
m_vecotrTagDocObj.clear();
|
return true;
|
}
|
|
bool CMBBaseTagDocMgr::GetBaseObjVector( CMBBaseObjVector &vectorObj )
|
{
|
CMBBaseTagDocObjVector::iterator it;
|
CMBBaseTagDocObj *pTagDocObj = NULL;
|
|
for( it = m_vecotrTagDocObj.begin();it != m_vecotrTagDocObj.end();it++ )
|
{
|
pTagDocObj = *it;
|
vectorObj.push_back(pTagDocObj);
|
}
|
|
return true;
|
}
|
|
bool CMBBaseTagDocMgr::RemoveTagDocObj( CMBBaseTagDocObj *pTagDocObj )
|
{
|
bool bDelte = false;
|
if( NULL == pTagDocObj )
|
return false;
|
|
CMBBaseTagDocObjMap::iterator it = m_mapTagDocObj.find(pTagDocObj->m_strName);
|
|
if( it!= m_mapTagDocObj.end() )
|
{
|
bDelte = true;
|
m_mapTagDocObj.erase(it);
|
}
|
|
CMBBaseTagDocObjVector::iterator it1 = std::find(m_vecotrTagDocObj.begin( ), m_vecotrTagDocObj.end( ), pTagDocObj); //²éÕÒ3
|
if( it1 != m_vecotrTagDocObj.end( ) ){
|
bDelte = true;
|
m_vecotrTagDocObj.erase(it1);
|
}
|
if( bDelte ){
|
delete pTagDocObj;
|
pTagDocObj = NULL;
|
}
|
return true;
|
}
|
|
// ÒÆ³ýÎļþÐÅÏ¢
|
bool CMBBaseTagDocMgr::RemoveTagDocObj( CString strID )
|
{
|
CMBBaseTagDocObj *pBase= GetTagDocObj( strID );
|
return RemoveTagDocObj( pBase );
|
}
|
|
void CMBBaseTagDocMgr::GetTagDocObjMap( CMBBaseTagDocObjMap &mapTagDocObj)
|
{
|
mapTagDocObj.clear();
|
mapTagDocObj = m_mapTagDocObj;
|
}
|
|
void CMBBaseTagDocMgr:: GetTagDocObjVector( CMBBaseTagDocObjVector &vecotrTagDocObj)
|
{
|
vecotrTagDocObj.clear();
|
vecotrTagDocObj = m_vecotrTagDocObj;
|
}
|
|
|
int CMBBaseTagDocMgr::GetCount()
|
{
|
return m_mapTagDocObj.size();
|
}
|
|
|