⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 waitinguserlist.cpp

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 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 + -