More work on server selection. Currently untested.

This commit is contained in:
lotodore
2009-04-05 12:31:12 +00:00
parent 59a6b35dd1
commit 534b6066a8
6 changed files with 90 additions and 5 deletions
+21 -1
View File
@@ -60,7 +60,7 @@ private:
};
ClientThread::ClientThread(GuiInterface &gui, AvatarManager &avatarManager)
: m_curState(NULL), m_gui(gui), m_avatarManager(avatarManager),
: m_curState(NULL), m_gui(gui), m_avatarManager(avatarManager), m_isServerSelected(false),
m_curGameId(0), m_curGameNum(1), m_guiPlayerId(0), m_sessionEstablished(false)
{
m_ioService.reset(new boost::asio::io_service());
@@ -284,6 +284,14 @@ ClientThread::SendVoteKick(bool doKick)
m_outPacketList.push_back(vote);
}
void
ClientThread::SelectServer(unsigned serverId)
{
boost::mutex::scoped_lock lock(m_selectServerMutex);
m_isServerSelected = true;
m_selectedServerId = serverId;
}
ServerInfo
ClientThread::GetServerInfo(unsigned serverId) const
{
@@ -974,6 +982,18 @@ ClientThread::ClearServerInfoMap()
//GetCallback().SignalNetClientServerListClear();
}
bool
ClientThread::GetSelectedServer(unsigned &serverId) const
{
bool retVal = false;
boost::mutex::scoped_lock lock(m_selectServerMutex);
if (m_isServerSelected)
{
retVal = true;
serverId = m_selectedServerId;
}
return retVal;
}
void
ClientThread::UseServer(unsigned serverId)