📄 waitinguserlist.cpp
字号:
#include "StdAfx.h"
#include ".\waitinguserlist.h"
#include "User.h"
#include <vector>
WaitingUserList::WaitingUserList(void)
{
}
WaitingUserList::~WaitingUserList(void)
{
}
VOID WaitingUserList::Init()
{
}
VOID WaitingUserList::Release()
{
m_mapUsers.clear();
m_mapGuidUsers.clear();
}
VOID WaitingUserList::Update()
{
User *pUser;
WAITING_MAP_ITER it;
std::vector<User*> eraseList;
// 老沥 矫埃救俊 立加登瘤 臼篮 蜡廉甸篮 措扁 府胶飘俊辑 昏力茄促.
for( it = m_mapUsers.begin(); it != m_mapUsers.end(); ++it )
{
pUser = it->second;
if( pUser->IsTimeout() )
{
eraseList.push_back( pUser );
}
}
if( !eraseList.empty() )
{
std::vector<User*>::iterator it_erase;
for( it_erase = eraseList.begin(); it_erase != eraseList.end(); ++it_erase )
{
pUser = *it_erase;
RemoveUser( pUser->GetAuthID() );
MessageOut(eCRITICAL_LOG, "Timeout登绢 措扁 府胶飘俊辑 力芭(%d)", pUser->GetGUID() );
}
eraseList.clear();
}
}
VOID WaitingUserList::AddUser( DWORD dwAuthUserID, User *pUser )
{
WAITING_MAP_ITER it;
// 捞固 甘俊 乐绰 版快 力芭
if( FindUserWithAuthID( dwAuthUserID ) )
{
RemoveUser( dwAuthUserID );
}
// 鸥烙酒眶 汲沥
pUser->StartTimeCheck();
// dwAuthUserID甫 虐肺 甘俊 眠啊
m_mapUsers.insert( WAITING_MAP_PAIR( dwAuthUserID, pUser ) );
// Guid甫 虐肺 甘俊 眠啊
assert( pUser->GetGUID() != 0 );
m_mapGuidUsers.insert( WAITING_MAP_PAIR( pUser->GetGUID(), pUser ) );
}
VOID WaitingUserList::RemoveUser( DWORD dwAuthUserID )
{
WAITING_MAP_ITER it = m_mapUsers.find( dwAuthUserID );
User *pUser;
if( it != m_mapUsers.end() )
{
pUser = it->second;
m_mapUsers.erase( it );
// guid map俊辑档 力芭
it = m_mapGuidUsers.find( pUser->GetGUID() );
if( it != m_mapGuidUsers.end() )
{
m_mapGuidUsers.erase( it );
}
}
}
User* WaitingUserList::FindUserWithAuthID( DWORD dwAuthUserID )
{
WAITING_MAP_ITER it = m_mapUsers.find( dwAuthUserID );
if( it != m_mapUsers.end() )
{
return it->second;
}
return NULL;
}
User* WaitingUserList::FindUserWithGuid( DWORD dwGuid )
{
WAITING_MAP_ITER it = m_mapGuidUsers.find( dwGuid );
if( it != m_mapGuidUsers.end() )
{
return it->second;
}
return NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -