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); } }
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()); } }