#include "StdAfx.h"
|
#include "MBHistoryTransMgr.h"
|
|
|
CMBHistoryTransMgr::CMBHistoryTransMgr(void)
|
{
|
RemoveAllHistoryFile();
|
m_nDisplayHistoryCount = 0;
|
}
|
|
|
CMBHistoryTransMgr::~CMBHistoryTransMgr(void)
|
{
|
RemoveAllHistoryFile();
|
}
|
|
// ³õʼ»¯ÀúÊ·
|
bool CMBHistoryTransMgr::Init( int nDisplayHistoryCount )
|
{
|
CSingleLock lock( &m_cs, true );
|
|
m_nDisplayHistoryCount = nDisplayHistoryCount;
|
|
return true;
|
}
|
|
|
// Ìí¼ÓÊý¾Ý
|
bool CMBHistoryTransMgr::AddHistoryFile(CAutoRefPtr<CMBHistoryFileInfo> &pHistoryFile)
|
{
|
CSingleLock lock( &m_cs, true );
|
|
if( NULL == pHistoryFile || pHistoryFile->m_strID.IsEmpty() )
|
return false;
|
|
m_vectorTransInfo.push_back(pHistoryFile);
|
|
return true;
|
}
|
|
// ²éÕÒ
|
CMBHistoryFileInfo *CMBHistoryTransMgr::GetHistoryFile( CString strID )
|
{
|
CSingleLock lock( &m_cs, true );
|
|
CMBHistoryFileAutoPtrVector::iterator it;
|
CMBHistoryFileInfo *pHistoryFileInfo = NULL;
|
|
for( it = m_vectorTransInfo.begin();it != m_vectorTransInfo.end();it++ )
|
{
|
pHistoryFileInfo = *it;
|
if( pHistoryFileInfo->m_strID == strID)
|
return pHistoryFileInfo;
|
}
|
return NULL;
|
}
|
|
bool CMBHistoryTransMgr::RemoveHistoryFile( CString &strID )
|
{
|
CSingleLock lock( &m_cs, true );
|
|
CMBHistoryFileInfo *pHistoryFileInfo = GetHistoryFile( strID );
|
if( pHistoryFileInfo == NULL )
|
return false;
|
|
CMBHistoryFileAutoPtrVector::iterator it = find( m_vectorTransInfo.begin( ),m_vectorTransInfo.end( ), pHistoryFileInfo );
|
if ( it != m_vectorTransInfo.end( ) )
|
{
|
m_vectorTransInfo.erase(it);
|
}
|
|
return true;
|
}
|
|
// ÒÆ³ý
|
bool CMBHistoryTransMgr::RemoveAllHistoryFile()
|
{
|
CSingleLock lock( &m_cs, true );
|
|
m_vectorTransInfo.clear();
|
|
return true;
|
}
|
|
// Ìí¼ÓʵʱµÄÊý¾Ý
|
bool CMBHistoryTransMgr::AddRealTimeHistoryFile( CAutoRefPtr<CMBHistoryFileInfo> & pHistoryFile )
|
{
|
CSingleLock lock( &m_cs, true );
|
|
int nCount = m_vectorTransInfo.size();
|
if( nCount >= m_nDisplayHistoryCount )
|
{
|
m_vectorTransInfo.pop_back(); // ÒÆ³ýÒ»ÌõÊý¾Ý
|
}
|
|
m_vectorTransInfo.insert(m_vectorTransInfo.begin(),pHistoryFile );
|
|
return true;
|
}
|
|
|
bool CMBHistoryTransMgr::AddRealTimeHistoryFile( CMBDownloadFileInfo *pDownloadFileInfo )
|
{
|
CSingleLock lock( &m_cs, true );
|
|
if( pDownloadFileInfo == NULL )
|
return false;
|
int nCount = m_vectorTransInfo.size();
|
if( nCount >= m_nDisplayHistoryCount )
|
{
|
m_vectorTransInfo.pop_back(); // ÒÆ³ýÒ»ÌõÊý¾Ý
|
}
|
CAutoRefPtr<CMBHistoryFileInfo> pHistoryFile(new CMBHistoryFileInfo);
|
pHistoryFile->Release();
|
|
pHistoryFile->m_strID = pDownloadFileInfo->m_strID;
|
pHistoryFile->m_strLocalPath = pDownloadFileInfo->GetLocalPath(); // µ±Ç°Â·¾¶
|
pHistoryFile->m_nFileSize = pDownloadFileInfo->m_nFileSize; // Îļþ´óС
|
pHistoryFile->m_nIsDir = pDownloadFileInfo->m_nIsDir; // 1ÊÇĿ¼£¬0 ²»ÊÇ
|
pHistoryFile->m_strFileSvr = pDownloadFileInfo->m_strFileSvr; // Îļþ·þÎñÆ÷±êʶ
|
pHistoryFile->m_strFileID = pDownloadFileInfo->m_strFileID; // Îļþid
|
pHistoryFile->m_strTStartTime = pDownloadFileInfo->m_strTAddTime; // ¿ªÊ¼Ê±¼ä
|
pHistoryFile->m_strTEndTime = pDownloadFileInfo->m_strTEndTime; // ½áÊøÊ±¼ä
|
// pHistoryFile->m_nStatus = pDownloadFileInfo->GetStatus(); // ״̬
|
pHistoryFile->m_nType = 0; // ÀàÐÍ 1 OI_MBC_UPLOAD_HISTORY_FILE; 0 OI_MBC_DOWNLOAD_HISTORY_FILE
|
|
|
m_vectorTransInfo.insert(m_vectorTransInfo.begin(),pHistoryFile );
|
|
return true;
|
}
|
|
|
bool CMBHistoryTransMgr::AddRealTimeHistoryFile( CMBUploadFileInfo *pUploadFileInfo )
|
{
|
CSingleLock lock( &m_cs, true );
|
|
if( pUploadFileInfo == NULL )
|
return false;
|
int nCount = m_vectorTransInfo.size();
|
if( nCount >= m_nDisplayHistoryCount )
|
{
|
m_vectorTransInfo.pop_back(); // ÒÆ³ýÒ»ÌõÊý¾Ý
|
}
|
CAutoRefPtr<CMBHistoryFileInfo> pHistoryFile(new CMBHistoryFileInfo);
|
pHistoryFile->Release();
|
|
pHistoryFile->m_strID = pUploadFileInfo->m_strID;
|
pHistoryFile->m_strLocalPath = pUploadFileInfo->GetLocalPath(); // µ±Ç°Â·¾¶
|
pHistoryFile->m_nFileSize = pUploadFileInfo->m_nFileSize; // Îļþ´óС
|
pHistoryFile->m_nIsDir = pUploadFileInfo->m_nIsDir; // 1ÊÇĿ¼£¬0 ²»ÊÇ
|
pHistoryFile->m_strFileSvr = pUploadFileInfo->m_strFileSvr; // Îļþ·þÎñÆ÷±êʶ
|
pHistoryFile->m_strFileID = pUploadFileInfo->m_strFileID; // Îļþid
|
pHistoryFile->m_strTStartTime = pUploadFileInfo->m_strTAddTime; // ¿ªÊ¼Ê±¼ä
|
pHistoryFile->m_strTEndTime = pUploadFileInfo->m_strTEndTime; // ½áÊøÊ±¼ä
|
//pHistoryFile->m_nStatus = pUploadFileInfo->GetStatus(); // ״̬
|
pHistoryFile->m_nType = 1; // ÀàÐÍ 1 OI_MBC_UPLOAD_HISTORY_FILE; 0 OI_MBC_DOWNLOAD_HISTORY_FILE
|
|
m_vectorTransInfo.insert(m_vectorTransInfo.begin(),pHistoryFile );
|
|
return true;
|
}
|
|
void CMBHistoryTransMgr::CopyHistoryTransVector( CMBHistoryFileAutoPtrVector &vectorTransInfo )
|
{
|
CSingleLock lock( &m_cs, true );
|
vectorTransInfo.clear();
|
vectorTransInfo = m_vectorTransInfo;
|
}
|
|
int CMBHistoryTransMgr::GetHistoryCount()
|
{
|
CSingleLock lock( &m_cs, true );
|
return m_vectorTransInfo.size();
|
}
|
|