Exemplo n.º 1
0
void GateUserManager::DelClient(DWORD dw)
{
	boost::mutex::scoped_lock lock(m_mutex);
	MAPPROTOSOCKET::iterator it = m_clients.find(dw);

	CCProtoSocket * p = it->second;
	if (p->GetAccountID() != 0)
	{
		MAPPROTOSOCKET::iterator itlogin = m_LoginClients.find(p->GetAccountID());
		if (itlogin != m_LoginClients.end())
		{
			MsgGate2LGClientDisconnect Msg;
			Msg.set_id(p->GetAccountID());
			p2LoginSocket->send_message(Gate2LG_MsgGate2LGClientDisconnect, &Msg);
			m_LoginClients.erase(itlogin);
			MyLog::log->notice("send msg to gate for login out account[%l]", Msg.id());
		}
		else
		{
			MyLog::log->warn("unknown warning the user is not login when it login out");
		}
	}
	if (it != m_clients.end())
	{
		m_clients.erase(it);
	}
}
Exemplo n.º 2
0
void GateUserManager::GetLoginClientList(std::vector<unsigned long>& vc)
{
	boost::mutex::scoped_lock lock(m_mutex);
	MAPPROTOSOCKET::iterator it = m_LoginClients.begin();
	CCProtoSocket* Temp;
	for (; it != m_LoginClients.end(); ++ it)
	{
		Temp = it->second;
		vc.push_back(Temp->GetAccountID());
	}
}