#include "StdAfx.h"
|
#include "MBErrTransMgr.h"
|
|
|
CMBErrTransMgr::CMBErrTransMgr(void)
|
{
|
RemoveAllErrFile();
|
m_nDisplayErrorCount = 0;
|
}
|
|
|
CMBErrTransMgr::~CMBErrTransMgr(void)
|
{
|
RemoveAllErrFile();
|
}
|
|
void CMBErrTransMgr::Init(UINT nDisplayErrorCount)
|
{
|
m_nDisplayErrorCount = nDisplayErrorCount;
|
}
|
|
// Ìí¼ÓÊý¾Ý
|
bool CMBErrTransMgr::AddErrFile(CAutoRefPtr<CMBErrFileInfo> & pErrFileInfo)
|
{
|
CSingleLock lock( &m_cs, true );
|
|
m_vectorTransInfo.push_back(pErrFileInfo);
|
return true;
|
}
|
|
bool CMBErrTransMgr::AddRealTimeErr(CAutoRefPtr<CMBErrFileInfo> & pErrFileInfo)
|
{
|
CSingleLock lock( &m_cs, true );
|
|
|
int nCount = m_vectorTransInfo.size();
|
if( nCount >= m_nDisplayErrorCount )
|
{
|
m_vectorTransInfo.pop_back(); // ÒÆ³ýÒ»ÌõÊý¾Ý
|
}
|
|
m_vectorTransInfo.insert(m_vectorTransInfo.begin(),pErrFileInfo );
|
|
return true;
|
}
|
|
// ²éÕÒ
|
CMBErrFileInfo * CMBErrTransMgr::GetErrFile( CString strID )
|
{
|
CSingleLock lock( &m_cs, true );
|
|
CMBErrFileAutoPtrVector::iterator it;
|
CMBErrFileInfo* pErrFileInfo = NULL;
|
|
for( it = m_vectorTransInfo.begin();it != m_vectorTransInfo.end();it++ )
|
{
|
pErrFileInfo = *it;
|
if( pErrFileInfo->m_strID == strID )
|
{
|
return pErrFileInfo;
|
}
|
}
|
|
return NULL;
|
}
|
|
// ÒÆ³ý
|
bool CMBErrTransMgr::RemoveAllErrFile()
|
{
|
CSingleLock lock( &m_cs, true );
|
|
m_vectorTransInfo.clear();
|
return true;
|
}
|
|
bool CMBErrTransMgr::RemoveErrFile( CString strID )
|
{
|
CSingleLock lock( &m_cs, true );
|
|
CMBErrFileInfo* pErrFileInfo = GetErrFile(strID);
|
if( NULL == pErrFileInfo )
|
return false;
|
|
CMBErrFileAutoPtrVector::iterator it = find( m_vectorTransInfo.begin( ),m_vectorTransInfo.end( ), pErrFileInfo );
|
if ( it != m_vectorTransInfo.end( ) )
|
{
|
m_vectorTransInfo.erase(it);
|
}
|
return true;
|
}
|
|
|
void CMBErrTransMgr::CopyErrTransVector( CMBErrFileAutoPtrVector &vectorTransInfo )
|
{
|
CSingleLock lock( &m_cs, true );
|
vectorTransInfo.clear();
|
vectorTransInfo = m_vectorTransInfo;
|
}
|
|
void CMBErrTransMgr::GetErrFileIDS( CString &strUploadIDS,CString &strDownLoadIDS )
|
{
|
CSingleLock lock( &m_cs, true );
|
|
strUploadIDS.Empty();
|
strDownLoadIDS.Empty();
|
|
CMBErrFileAutoPtrVector::iterator it;
|
CMBErrFileInfo* pErrFileInfo = NULL;
|
|
for( it = m_vectorTransInfo.begin();it != m_vectorTransInfo.end();it++ )
|
{
|
pErrFileInfo = *it;
|
if( pErrFileInfo->m_nType == 1 ) // ÀàÐÍ 1 OI_MBC_UPLOAD_HISTORY_FILE; 0 OI_MBC_DOWNLOAD_HISTORY_FILE
|
{
|
strUploadIDS += _T("'") + pErrFileInfo->m_strID + _T("'") ;
|
strUploadIDS += _T(",");
|
|
}else
|
{
|
strDownLoadIDS += _T("'") + pErrFileInfo->m_strID + _T("'") ;
|
strDownLoadIDS += _T(",");
|
}
|
}
|
if( !strUploadIDS.IsEmpty() )
|
{
|
strUploadIDS = strUploadIDS.Left(strUploadIDS.GetLength() -1);
|
}
|
if( !strDownLoadIDS.IsEmpty() )
|
{
|
strDownLoadIDS = strDownLoadIDS.Left(strDownLoadIDS.GetLength() -1);
|
}
|
}
|
|
int CMBErrTransMgr::GetCount()
|
{
|
return m_vectorTransInfo.size();
|
}
|