Ticket #3700: 3700.patch
File 3700.patch, 22.7 KB (added by , 7 years ago) |
---|
-
source/gui/scripting/ScriptFunctions.cpp
349 349 } 350 350 351 351 g_Game = new CGame(); 352 g_NetClient = new CNetClient (g_Game, true);352 g_NetClient = new CNetClientWorker(g_Game, true); 353 353 g_NetClient->SetUserName(playerName); 354 354 355 355 if (!g_NetClient->SetupConnection("127.0.0.1", serverPort)) … … 367 367 ENSURE(!g_Game); 368 368 369 369 g_Game = new CGame(); 370 g_NetClient = new CNetClient (g_Game, false);370 g_NetClient = new CNetClientWorker(g_Game, false); 371 371 g_NetClient->SetUserName(playerName); 372 372 if (!g_NetClient->SetupConnection(serverAddress, serverPort)) 373 373 { -
source/network/NetClient.cpp
45 45 { 46 46 NONCOPYABLE(CNetFileReceiveTask_ClientRejoin); 47 47 public: 48 CNetFileReceiveTask_ClientRejoin(CNetClient & client)48 CNetFileReceiveTask_ClientRejoin(CNetClientWorker& client) 49 49 : m_Client(client) 50 50 { 51 51 } … … 63 63 } 64 64 65 65 private: 66 CNetClient & m_Client;66 CNetClientWorker& m_Client; 67 67 }; 68 68 69 CNetClient ::CNetClient(CGame* game, bool isLocalClient) :69 CNetClientWorker::CNetClientWorker(CGame* game, bool isLocalClient) : 70 70 m_Session(NULL), 71 71 m_UserName(L"anonymous"), 72 72 m_GUID(ps_generate_guid()), m_HostID((u32)-1), m_ClientTurnManager(NULL), m_Game(game), … … 79 79 80 80 void* context = this; 81 81 82 JS_AddExtraGCRootsTracer(GetScriptInterface().GetJSRuntime(), CNetClient ::Trace, this);82 JS_AddExtraGCRootsTracer(GetScriptInterface().GetJSRuntime(), CNetClientWorker::Trace, this); 83 83 84 84 // Set up transitions for session 85 85 AddTransition(NCS_UNCONNECTED, (uint)NMT_CONNECT_COMPLETE, NCS_CONNECT, (void*)&OnConnect, context); … … 139 139 SetFirstState(NCS_UNCONNECTED); 140 140 } 141 141 142 CNetClient ::~CNetClient()142 CNetClientWorker::~CNetClientWorker() 143 143 { 144 144 DestroyConnection(); 145 JS_RemoveExtraGCRootsTracer(GetScriptInterface().GetJSRuntime(), CNetClient ::Trace, this);145 JS_RemoveExtraGCRootsTracer(GetScriptInterface().GetJSRuntime(), CNetClientWorker::Trace, this); 146 146 } 147 147 148 void CNetClient ::TraceMember(JSTracer *trc)148 void CNetClientWorker::TraceMember(JSTracer *trc) 149 149 { 150 150 for (JS::Heap<JS::Value>& guiMessage : m_GuiMessageQueue) 151 151 JS_CallValueTracer(trc, &guiMessage, "m_GuiMessageQueue"); … … 158 158 m_UserName = username; 159 159 } 160 160 161 bool CNetClient ::SetupConnection(const CStr& server, const u16 port)161 bool CNetClientWorker::SetupConnection(const CStr& server, const u16 port) 162 162 { 163 163 CNetClientSession* session = new CNetClientSession(*this); 164 164 bool ok = session->Connect(server, port, m_IsLocalClient); … … 166 166 return ok; 167 167 } 168 168 169 void CNetClient ::SetAndOwnSession(CNetClientSession* session)169 void CNetClientWorker::SetAndOwnSession(CNetClientSession* session) 170 170 { 171 171 delete m_Session; 172 172 m_Session = session; 173 173 } 174 174 175 void CNetClient ::DestroyConnection()175 void CNetClientWorker::DestroyConnection() 176 176 { 177 177 // Send network messages from the current frame before connection is destroyed. 178 178 if (m_ClientTurnManager) … … 183 183 SAFE_DELETE(m_Session); 184 184 } 185 185 186 void CNetClient ::Poll()186 void CNetClientWorker::Poll() 187 187 { 188 188 if (!m_Session) 189 189 return; … … 192 192 m_Session->Poll(); 193 193 } 194 194 195 void CNetClient ::CheckServerConnection()195 void CNetClientWorker::CheckServerConnection() 196 196 { 197 197 // Trigger local warnings if the connection to the server is bad. 198 198 // At most once per second. … … 227 227 } 228 228 } 229 229 230 void CNetClient ::Flush()230 void CNetClientWorker::Flush() 231 231 { 232 232 if (m_Session) 233 233 m_Session->Flush(); 234 234 } 235 235 236 void CNetClient ::GuiPoll(JS::MutableHandleValue ret)236 void CNetClientWorker::GuiPoll(JS::MutableHandleValue ret) 237 237 { 238 238 if (m_GuiMessageQueue.empty()) 239 239 { … … 245 245 m_GuiMessageQueue.pop_front(); 246 246 } 247 247 248 void CNetClient ::PushGuiMessage(const JS::HandleValue message)248 void CNetClientWorker::PushGuiMessage(const JS::HandleValue message) 249 249 { 250 250 ENSURE(!message.isUndefined()); 251 251 … … 252 252 m_GuiMessageQueue.push_back(JS::Heap<JS::Value>(message)); 253 253 } 254 254 255 std::string CNetClient ::TestReadGuiMessages()255 std::string CNetClientWorker::TestReadGuiMessages() 256 256 { 257 257 JSContext* cx = GetScriptInterface().GetContext(); 258 258 JSAutoRequest rq(cx); … … 269 269 return r; 270 270 } 271 271 272 ScriptInterface& CNetClient ::GetScriptInterface()272 ScriptInterface& CNetClientWorker::GetScriptInterface() 273 273 { 274 274 return m_Game->GetSimulation2()->GetScriptInterface(); 275 275 } 276 276 277 void CNetClient ::PostPlayerAssignmentsToScript()277 void CNetClientWorker::PostPlayerAssignmentsToScript() 278 278 { 279 279 JSContext* cx = GetScriptInterface().GetContext(); 280 280 JSAutoRequest rq(cx); … … 298 298 PushGuiMessage(msg); 299 299 } 300 300 301 bool CNetClient ::SendMessage(const CNetMessage* message)301 bool CNetClientWorker::SendMessage(const CNetMessage* message) 302 302 { 303 303 if (!m_Session) 304 304 return false; … … 306 306 return m_Session->SendMessage(message); 307 307 } 308 308 309 void CNetClient ::HandleConnect()309 void CNetClientWorker::HandleConnect() 310 310 { 311 311 Update((uint)NMT_CONNECT_COMPLETE, NULL); 312 312 } 313 313 314 void CNetClient ::HandleDisconnect(u32 reason)314 void CNetClientWorker::HandleDisconnect(u32 reason) 315 315 { 316 316 JSContext* cx = GetScriptInterface().GetContext(); 317 317 JSAutoRequest rq(cx); … … 328 328 SetCurrState(NCS_UNCONNECTED); 329 329 } 330 330 331 void CNetClient ::SendGameSetupMessage(JS::MutableHandleValue attrs, ScriptInterface& scriptInterface)331 void CNetClientWorker::SendGameSetupMessage(JS::MutableHandleValue attrs, ScriptInterface& scriptInterface) 332 332 { 333 333 CGameSetupMessage gameSetup(scriptInterface); 334 334 gameSetup.m_Data = attrs; … … 335 335 SendMessage(&gameSetup); 336 336 } 337 337 338 void CNetClient ::SendAssignPlayerMessage(const int playerID, const CStr& guid)338 void CNetClientWorker::SendAssignPlayerMessage(const int playerID, const CStr& guid) 339 339 { 340 340 CAssignPlayerMessage assignPlayer; 341 341 assignPlayer.m_PlayerID = playerID; … … 343 343 SendMessage(&assignPlayer); 344 344 } 345 345 346 void CNetClient ::SendChatMessage(const std::wstring& text)346 void CNetClientWorker::SendChatMessage(const std::wstring& text) 347 347 { 348 348 CChatMessage chat; 349 349 chat.m_Message = text; … … 350 350 SendMessage(&chat); 351 351 } 352 352 353 void CNetClient ::SendReadyMessage(const int status)353 void CNetClientWorker::SendReadyMessage(const int status) 354 354 { 355 355 CReadyMessage readyStatus; 356 356 readyStatus.m_Status = status; … … 357 357 SendMessage(&readyStatus); 358 358 } 359 359 360 void CNetClient ::SendClearAllReadyMessage()360 void CNetClientWorker::SendClearAllReadyMessage() 361 361 { 362 362 CClearAllReadyMessage clearAllReady; 363 363 SendMessage(&clearAllReady); 364 364 } 365 365 366 void CNetClient ::SendStartGameMessage()366 void CNetClientWorker::SendStartGameMessage() 367 367 { 368 368 CGameStartMessage gameStart; 369 369 SendMessage(&gameStart); 370 370 } 371 371 372 void CNetClient ::SendRejoinedMessage()372 void CNetClientWorker::SendRejoinedMessage() 373 373 { 374 374 CRejoinedMessage rejoinedMessage; 375 375 SendMessage(&rejoinedMessage); 376 376 } 377 377 378 void CNetClient ::SendKickPlayerMessage(const CStrW& playerName, bool ban)378 void CNetClientWorker::SendKickPlayerMessage(const CStrW& playerName, bool ban) 379 379 { 380 380 CKickedMessage kickPlayer; 381 381 kickPlayer.m_Name = playerName; … … 383 383 SendMessage(&kickPlayer); 384 384 } 385 385 386 void CNetClient ::SendPausedMessage(bool pause)386 void CNetClientWorker::SendPausedMessage(bool pause) 387 387 { 388 388 CClientPausedMessage pausedMessage; 389 389 pausedMessage.m_Pause = pause; … … 390 390 SendMessage(&pausedMessage); 391 391 } 392 392 393 bool CNetClient ::HandleMessage(CNetMessage* message)393 bool CNetClientWorker::HandleMessage(CNetMessage* message) 394 394 { 395 395 // Handle non-FSM messages first 396 396 … … 433 433 return ok; 434 434 } 435 435 436 void CNetClient ::LoadFinished()436 void CNetClientWorker::LoadFinished() 437 437 { 438 438 JSContext* cx = GetScriptInterface().GetContext(); 439 439 JSAutoRequest rq(cx); … … 476 476 SendMessage(&loaded); 477 477 } 478 478 479 bool CNetClient ::OnConnect(void* context, CFsmEvent* event)479 bool CNetClientWorker::OnConnect(void* context, CFsmEvent* event) 480 480 { 481 481 ENSURE(event->GetType() == (uint)NMT_CONNECT_COMPLETE); 482 482 483 CNetClient * client = (CNetClient*)context;483 CNetClientWorker* client = (CNetClientWorker*)context; 484 484 485 485 JSContext* cx = client->GetScriptInterface().GetContext(); 486 486 JSAutoRequest rq(cx); … … 492 492 return true; 493 493 } 494 494 495 bool CNetClient ::OnHandshake(void* context, CFsmEvent* event)495 bool CNetClientWorker::OnHandshake(void* context, CFsmEvent* event) 496 496 { 497 497 ENSURE(event->GetType() == (uint)NMT_SERVER_HANDSHAKE); 498 498 499 CNetClient * client = (CNetClient*)context;499 CNetClientWorker* client = (CNetClientWorker*)context; 500 500 501 501 CCliHandshakeMessage handshake; 502 502 handshake.m_MagicResponse = PS_PROTOCOL_MAGIC_RESPONSE; … … 507 507 return true; 508 508 } 509 509 510 bool CNetClient ::OnHandshakeResponse(void* context, CFsmEvent* event)510 bool CNetClientWorker::OnHandshakeResponse(void* context, CFsmEvent* event) 511 511 { 512 512 ENSURE(event->GetType() == (uint)NMT_SERVER_HANDSHAKE_RESPONSE); 513 513 514 CNetClient * client = (CNetClient*)context;514 CNetClientWorker* client = (CNetClientWorker*)context; 515 515 516 516 CAuthenticateMessage authenticate; 517 517 authenticate.m_GUID = client->m_GUID; … … 523 523 return true; 524 524 } 525 525 526 bool CNetClient ::OnAuthenticate(void* context, CFsmEvent* event)526 bool CNetClientWorker::OnAuthenticate(void* context, CFsmEvent* event) 527 527 { 528 528 ENSURE(event->GetType() == (uint)NMT_AUTHENTICATE_RESULT); 529 529 530 CNetClient * client = (CNetClient*)context;530 CNetClientWorker* client = (CNetClientWorker*)context; 531 531 532 532 JSContext* cx = client->GetScriptInterface().GetContext(); 533 533 JSAutoRequest rq(cx); … … 547 547 return true; 548 548 } 549 549 550 bool CNetClient ::OnChat(void* context, CFsmEvent* event)550 bool CNetClientWorker::OnChat(void* context, CFsmEvent* event) 551 551 { 552 552 ENSURE(event->GetType() == (uint)NMT_CHAT); 553 553 554 CNetClient * client = (CNetClient*)context;554 CNetClientWorker* client = (CNetClientWorker*)context; 555 555 JSContext* cx = client->GetScriptInterface().GetContext(); 556 556 JSAutoRequest rq(cx); 557 557 … … 566 566 return true; 567 567 } 568 568 569 bool CNetClient ::OnReady(void* context, CFsmEvent* event)569 bool CNetClientWorker::OnReady(void* context, CFsmEvent* event) 570 570 { 571 571 ENSURE(event->GetType() == (uint)NMT_READY); 572 572 573 CNetClient * client = (CNetClient*)context;573 CNetClientWorker* client = (CNetClientWorker*)context; 574 574 JSContext* cx = client->GetScriptInterface().GetContext(); 575 575 JSAutoRequest rq(cx); 576 576 … … 585 585 return true; 586 586 } 587 587 588 bool CNetClient ::OnGameSetup(void* context, CFsmEvent* event)588 bool CNetClientWorker::OnGameSetup(void* context, CFsmEvent* event) 589 589 { 590 590 ENSURE(event->GetType() == (uint)NMT_GAME_SETUP); 591 591 592 CNetClient * client = (CNetClient*)context;592 CNetClientWorker* client = (CNetClientWorker*)context; 593 593 JSContext* cx = client->GetScriptInterface().GetContext(); 594 594 JSAutoRequest rq(cx); 595 595 … … 605 605 return true; 606 606 } 607 607 608 bool CNetClient ::OnPlayerAssignment(void* context, CFsmEvent* event)608 bool CNetClientWorker::OnPlayerAssignment(void* context, CFsmEvent* event) 609 609 { 610 610 ENSURE(event->GetType() == (uint)NMT_PLAYER_ASSIGNMENT); 611 611 612 CNetClient * client = (CNetClient*)context;612 CNetClientWorker* client = (CNetClientWorker*)context; 613 613 614 614 CPlayerAssignmentMessage* message = (CPlayerAssignmentMessage*)event->GetParamRef(); 615 615 … … 632 632 return true; 633 633 } 634 634 635 bool CNetClient ::OnGameStart(void* context, CFsmEvent* event)635 bool CNetClientWorker::OnGameStart(void* context, CFsmEvent* event) 636 636 { 637 637 ENSURE(event->GetType() == (uint)NMT_GAME_START); 638 638 639 CNetClient * client = (CNetClient*)context;639 CNetClientWorker* client = (CNetClientWorker*)context; 640 640 JSContext* cx = client->GetScriptInterface().GetContext(); 641 641 JSAutoRequest rq(cx); 642 642 … … 658 658 return true; 659 659 } 660 660 661 bool CNetClient ::OnJoinSyncStart(void* context, CFsmEvent* event)661 bool CNetClientWorker::OnJoinSyncStart(void* context, CFsmEvent* event) 662 662 { 663 663 ENSURE(event->GetType() == (uint)NMT_JOIN_SYNC_START); 664 664 665 CNetClient * client = (CNetClient*)context;665 CNetClientWorker* client = (CNetClientWorker*)context; 666 666 667 667 // The server wants us to start downloading the game state from it, so do so 668 668 client->m_Session->GetFileTransferer().StartTask( … … 672 672 return true; 673 673 } 674 674 675 bool CNetClient ::OnJoinSyncEndCommandBatch(void* context, CFsmEvent* event)675 bool CNetClientWorker::OnJoinSyncEndCommandBatch(void* context, CFsmEvent* event) 676 676 { 677 677 ENSURE(event->GetType() == (uint)NMT_END_COMMAND_BATCH); 678 678 679 CNetClient * client = (CNetClient*)context;679 CNetClientWorker* client = (CNetClientWorker*)context; 680 680 681 681 CEndCommandBatchMessage* endMessage = (CEndCommandBatchMessage*)event->GetParamRef(); 682 682 … … 688 688 return true; 689 689 } 690 690 691 bool CNetClient ::OnRejoined(void* context, CFsmEvent* event)691 bool CNetClientWorker::OnRejoined(void* context, CFsmEvent* event) 692 692 { 693 693 ENSURE(event->GetType() == (uint)NMT_REJOINED); 694 694 695 CNetClient * client = (CNetClient*)context;695 CNetClientWorker* client = (CNetClientWorker*)context; 696 696 JSContext* cx = client->GetScriptInterface().GetContext(); 697 697 JSAutoRequest rq(cx); 698 698 … … 705 705 return true; 706 706 } 707 707 708 bool CNetClient ::OnKicked(void *context, CFsmEvent* event)708 bool CNetClientWorker::OnKicked(void *context, CFsmEvent* event) 709 709 { 710 710 ENSURE(event->GetType() == (uint)NMT_KICKED); 711 711 712 CNetClient * client = (CNetClient*)context;712 CNetClientWorker* client = (CNetClientWorker*)context; 713 713 JSContext* cx = client->GetScriptInterface().GetContext(); 714 714 JSAutoRequest rq(cx); 715 715 … … 725 725 return true; 726 726 } 727 727 728 bool CNetClient ::OnClientTimeout(void *context, CFsmEvent* event)728 bool CNetClientWorker::OnClientTimeout(void *context, CFsmEvent* event) 729 729 { 730 730 // Report the timeout of some other client 731 731 732 732 ENSURE(event->GetType() == (uint)NMT_CLIENT_TIMEOUT); 733 733 734 CNetClient * client = (CNetClient*)context;734 CNetClientWorker* client = (CNetClientWorker*)context; 735 735 JSContext* cx = client->GetScriptInterface().GetContext(); 736 736 JSAutoRequest rq(cx); 737 737 … … 749 749 return true; 750 750 } 751 751 752 bool CNetClient ::OnClientPerformance(void *context, CFsmEvent* event)752 bool CNetClientWorker::OnClientPerformance(void *context, CFsmEvent* event) 753 753 { 754 754 // Performance statistics for one or multiple clients 755 755 756 756 ENSURE(event->GetType() == (uint)NMT_CLIENT_PERFORMANCE); 757 757 758 CNetClient * client = (CNetClient*)context;758 CNetClientWorker* client = (CNetClientWorker*)context; 759 759 JSContext* cx = client->GetScriptInterface().GetContext(); 760 760 JSAutoRequest rq(cx); 761 761 … … 780 780 return true; 781 781 } 782 782 783 bool CNetClient ::OnClientsLoading(void *context, CFsmEvent *event)783 bool CNetClientWorker::OnClientsLoading(void *context, CFsmEvent *event) 784 784 { 785 785 ENSURE(event->GetType() == (uint)NMT_CLIENTS_LOADING); 786 786 … … 791 791 for (const CClientsLoadingMessage::S_m_Clients& client : message->m_Clients) 792 792 guids.push_back(client.m_GUID); 793 793 794 CNetClient * client = (CNetClient*)context;794 CNetClientWorker* client = (CNetClientWorker*)context; 795 795 JSContext* cx = client->GetScriptInterface().GetContext(); 796 796 JSAutoRequest rq(cx); 797 797 … … 802 802 return true; 803 803 } 804 804 805 bool CNetClient ::OnClientPaused(void *context, CFsmEvent *event)805 bool CNetClientWorker::OnClientPaused(void *context, CFsmEvent *event) 806 806 { 807 807 ENSURE(event->GetType() == (uint)NMT_CLIENT_PAUSED); 808 808 809 CNetClient * client = (CNetClient*)context;809 CNetClientWorker* client = (CNetClientWorker*)context; 810 810 JSContext* cx = client->GetScriptInterface().GetContext(); 811 811 JSAutoRequest rq(cx); 812 812 … … 821 821 return true; 822 822 } 823 823 824 bool CNetClient ::OnLoadedGame(void* context, CFsmEvent* event)824 bool CNetClientWorker::OnLoadedGame(void* context, CFsmEvent* event) 825 825 { 826 826 ENSURE(event->GetType() == (uint)NMT_LOADED_GAME); 827 827 828 CNetClient * client = (CNetClient*)context;828 CNetClientWorker* client = (CNetClientWorker*)context; 829 829 JSContext* cx = client->GetScriptInterface().GetContext(); 830 830 JSAutoRequest rq(cx); 831 831 … … 844 844 return true; 845 845 } 846 846 847 bool CNetClient ::OnInGame(void *context, CFsmEvent* event)847 bool CNetClientWorker::OnInGame(void *context, CFsmEvent* event) 848 848 { 849 849 // TODO: should split each of these cases into a separate method 850 850 851 CNetClient * client = (CNetClient*)context;851 CNetClientWorker* client = (CNetClientWorker*)context; 852 852 853 853 CNetMessage* message = (CNetMessage*)event->GetParamRef(); 854 854 if (message) -
source/network/NetClient.h
23 23 #include "network/NetHost.h" 24 24 #include "scriptinterface/ScriptVal.h" 25 25 26 #include "ps/ThreadUtil.h" 26 27 #include "ps/CStr.h" 27 28 28 29 #include <deque> … … 33 34 class CNetServer; 34 35 class ScriptInterface; 35 36 37 class CNetClientWorker; 38 36 39 // NetClient session FSM states 37 40 enum 38 41 { … … 54 57 * It provides an interface between the GUI, the network (via CNetClientSession), 55 58 * and the game (via CGame and CNetClientTurnManager). 56 59 */ 57 class CNetClient : public CFsm60 class CNetClient 58 61 { 59 62 NONCOPYABLE(CNetClient); 60 63 61 friend class CNetFileReceiveTask_ClientRejoin;62 63 64 public: 64 /**65 /** 65 66 * Construct a client associated with the given game object. 66 67 * The game must exist for the lifetime of this object. 67 68 */ … … 70 71 virtual ~CNetClient(); 71 72 72 73 /** 74 * Set the user's name that will be displayed to all players. 75 * This must not be called after the connection setup. 76 */ 77 void SetUserName(const CStrW& username); 78 79 /** 80 * Set up a connection to the remote networked server. 81 * @param server IP address or host name to connect to 82 * @return true on success, false on connection failure 83 */ 84 bool SetupConnection(const CStr& server, const u16 port); 85 86 private: 87 CNetClientWorker* m_Worker; 88 }; 89 90 /** 91 * Network server worker thread. 92 * 93 * Thread-safety: 94 * 95 * 96 */ 97 class CNetClientWorker 98 { 99 NONCOPYABLE(CNetClientWorker); 100 101 public: 102 /** 73 103 * We assume that adding a tracing function that's only called 74 104 * during GC is better for performance than using a 75 105 * PersistentRooted<T> where each value needs to be added to … … 77 107 */ 78 108 static void Trace(JSTracer *trc, void *data) 79 109 { 80 reinterpret_cast<CNetClient *>(data)->TraceMember(trc);110 reinterpret_cast<CNetClientWorker*>(data)->TraceMember(trc); 81 111 } 82 112 83 113 void TraceMember(JSTracer *trc); 84 114 85 115 /** 86 * Set the user's name that will be displayed to all players.87 * This must not be called after the connection setup.88 */89 void SetUserName(const CStrW& username);90 91 /**92 116 * Returns the GUID of the local client. 93 117 * Used for distinguishing observers. 94 118 */ … … 95 119 CStr GetGUID() const { return m_GUID; } 96 120 97 121 /** 98 * Set up a connection to the remote networked server.99 * @param server IP address or host name to connect to100 * @return true on success, false on connection failure101 */102 bool SetupConnection(const CStr& server, const u16 port);103 104 /**105 122 * Destroy the connection to the server. 106 123 * This client probably cannot be used again. 107 124 */ … … 216 233 void SendPausedMessage(bool pause); 217 234 218 235 private: 236 friend class CNetClient; 237 friend class CNetFileReceiveTask_ClientRejoin; 238 239 CNetClientWorker(CGame* game, bool isLocalClient); 240 ~CNetClientWorker(); 241 242 /** 243 * Set up a connection to the remote networked server. 244 * @param server IP address or host name to connect to 245 * @return true on success, false on connection failure 246 */ 247 bool SetupConnection(const CStr& server, const u16 port); 248 219 249 // Net message / FSM transition handlers 220 250 static bool OnConnect(void* context, CFsmEvent* event); 221 251 static bool OnHandshake(void* context, CFsmEvent* event); -
source/network/NetClientTurnManager.cpp
33 33 #define NETCLIENTTURN_LOG(...) 34 34 #endif 35 35 36 CNetClientTurnManager::CNetClientTurnManager(CSimulation2& simulation, CNetClient & client, int clientId, IReplayLogger& replay)36 CNetClientTurnManager::CNetClientTurnManager(CSimulation2& simulation, CNetClientWorker& client, int clientId, IReplayLogger& replay) 37 37 : CTurnManager(simulation, DEFAULT_TURN_LENGTH_MP, clientId, replay), m_NetClient(client) 38 38 { 39 39 } -
source/network/NetClientTurnManager.h
21 21 #include "simulation2/system/TurnManager.h" 22 22 #include "NetMessage.h" 23 23 24 class CNetClient ;24 class CNetClientWorker; 25 25 26 26 /** 27 27 * Implementation of CTurnManager for network clients. … … 30 30 { 31 31 NONCOPYABLE(CNetClientTurnManager); 32 32 public: 33 CNetClientTurnManager(CSimulation2& simulation, CNetClient & client, int clientId, IReplayLogger& replay);33 CNetClientTurnManager(CSimulation2& simulation, CNetClientWorker& client, int clientId, IReplayLogger& replay); 34 34 35 35 void OnSimulationMessage(CSimulationMessage* msg) override; 36 36 … … 48 48 49 49 void NotifyFinishedUpdate(u32 turn) override; 50 50 51 CNetClient & m_NetClient;51 CNetClientWorker& m_NetClient; 52 52 }; 53 53 54 54 #endif // INCLUDED_NETCLIENTTURNMANAGER -
source/network/NetSession.cpp
32 32 33 33 static const int CHANNEL_COUNT = 1; 34 34 35 CNetClientSession::CNetClientSession(CNetClient & client) :35 CNetClientSession::CNetClientSession(CNetClientWorker& client) : 36 36 m_Client(client), m_FileTransferer(this), m_Host(NULL), m_Server(NULL), m_Stats(NULL) 37 37 { 38 38 } -
source/network/NetSession.h
34 34 */ 35 35 extern const u32 MAXIMUM_HOST_TIMEOUT; 36 36 37 class CNetClient ;37 class CNetClientWorker; 38 38 class CNetServerWorker; 39 39 40 40 class CNetStatsTable; … … 67 67 NONCOPYABLE(CNetClientSession); 68 68 69 69 public: 70 CNetClientSession(CNetClient & client);70 CNetClientSession(CNetClientWorker& client); 71 71 ~CNetClientSession(); 72 72 73 73 bool Connect(const CStr& server, const u16 port, const bool isLocalClient); … … 106 106 CNetFileTransferer& GetFileTransferer() { return m_FileTransferer; } 107 107 108 108 private: 109 CNetClient & m_Client;109 CNetClientWorker& m_Client; 110 110 111 111 CNetFileTransferer m_FileTransferer; 112 112 -
source/ps/GameSetup/GameSetup.cpp
1498 1498 bool ok = g_NetServer->SetupConnection(PS_DEFAULT_PORT); 1499 1499 ENSURE(ok); 1500 1500 1501 g_NetClient = new CNetClient (g_Game, true);1501 g_NetClient = new CNetClientWorker(g_Game, true); 1502 1502 g_NetClient->SetUserName(userName); 1503 1503 g_NetClient->SetupConnection("127.0.0.1", PS_DEFAULT_PORT); 1504 1504 } … … 1506 1506 { 1507 1507 InitPs(true, L"page_loading.xml", &scriptInterface, mpInitData); 1508 1508 1509 g_NetClient = new CNetClient (g_Game, false);1509 g_NetClient = new CNetClientWorker(g_Game, false); 1510 1510 g_NetClient->SetUserName(userName); 1511 1511 1512 1512 CStr ip = args.Get("autostart-client");