Ticket #3700: 3700.patch

File 3700.patch, 22.7 KB (added by Andy Alt, 7 years ago)

use patch extension, Andy

  • source/gui/scripting/ScriptFunctions.cpp

     
    349349    }
    350350
    351351    g_Game = new CGame();
    352     g_NetClient = new CNetClient(g_Game, true);
     352    g_NetClient = new CNetClientWorker(g_Game, true);
    353353    g_NetClient->SetUserName(playerName);
    354354
    355355    if (!g_NetClient->SetupConnection("127.0.0.1", serverPort))
     
    367367    ENSURE(!g_Game);
    368368
    369369    g_Game = new CGame();
    370     g_NetClient = new CNetClient(g_Game, false);
     370    g_NetClient = new CNetClientWorker(g_Game, false);
    371371    g_NetClient->SetUserName(playerName);
    372372    if (!g_NetClient->SetupConnection(serverAddress, serverPort))
    373373    {
  • source/network/NetClient.cpp

     
    4545{
    4646    NONCOPYABLE(CNetFileReceiveTask_ClientRejoin);
    4747public:
    48     CNetFileReceiveTask_ClientRejoin(CNetClient& client)
     48    CNetFileReceiveTask_ClientRejoin(CNetClientWorker& client)
    4949        : m_Client(client)
    5050    {
    5151    }
     
    6363    }
    6464
    6565private:
    66     CNetClient& m_Client;
     66    CNetClientWorker& m_Client;
    6767};
    6868
    69 CNetClient::CNetClient(CGame* game, bool isLocalClient) :
     69CNetClientWorker::CNetClientWorker(CGame* game, bool isLocalClient) :
    7070    m_Session(NULL),
    7171    m_UserName(L"anonymous"),
    7272    m_GUID(ps_generate_guid()), m_HostID((u32)-1), m_ClientTurnManager(NULL), m_Game(game),
     
    7979
    8080    void* context = this;
    8181
    82     JS_AddExtraGCRootsTracer(GetScriptInterface().GetJSRuntime(), CNetClient::Trace, this);
     82    JS_AddExtraGCRootsTracer(GetScriptInterface().GetJSRuntime(), CNetClientWorker::Trace, this);
    8383
    8484    // Set up transitions for session
    8585    AddTransition(NCS_UNCONNECTED, (uint)NMT_CONNECT_COMPLETE, NCS_CONNECT, (void*)&OnConnect, context);
     
    139139    SetFirstState(NCS_UNCONNECTED);
    140140}
    141141
    142 CNetClient::~CNetClient()
     142CNetClientWorker::~CNetClientWorker()
    143143{
    144144    DestroyConnection();
    145     JS_RemoveExtraGCRootsTracer(GetScriptInterface().GetJSRuntime(), CNetClient::Trace, this);
     145    JS_RemoveExtraGCRootsTracer(GetScriptInterface().GetJSRuntime(), CNetClientWorker::Trace, this);
    146146}
    147147
    148 void CNetClient::TraceMember(JSTracer *trc)
     148void CNetClientWorker::TraceMember(JSTracer *trc)
    149149{
    150150    for (JS::Heap<JS::Value>& guiMessage : m_GuiMessageQueue)
    151151        JS_CallValueTracer(trc, &guiMessage, "m_GuiMessageQueue");
     
    158158    m_UserName = username;
    159159}
    160160
    161 bool CNetClient::SetupConnection(const CStr& server, const u16 port)
     161bool CNetClientWorker::SetupConnection(const CStr& server, const u16 port)
    162162{
    163163    CNetClientSession* session = new CNetClientSession(*this);
    164164    bool ok = session->Connect(server, port, m_IsLocalClient);
     
    166166    return ok;
    167167}
    168168
    169 void CNetClient::SetAndOwnSession(CNetClientSession* session)
     169void CNetClientWorker::SetAndOwnSession(CNetClientSession* session)
    170170{
    171171    delete m_Session;
    172172    m_Session = session;
    173173}
    174174
    175 void CNetClient::DestroyConnection()
     175void CNetClientWorker::DestroyConnection()
    176176{
    177177    // Send network messages from the current frame before connection is destroyed.
    178178    if (m_ClientTurnManager)
     
    183183    SAFE_DELETE(m_Session);
    184184}
    185185
    186 void CNetClient::Poll()
     186void CNetClientWorker::Poll()
    187187{
    188188    if (!m_Session)
    189189        return;
     
    192192    m_Session->Poll();
    193193}
    194194
    195 void CNetClient::CheckServerConnection()
     195void CNetClientWorker::CheckServerConnection()
    196196{
    197197    // Trigger local warnings if the connection to the server is bad.
    198198    // At most once per second.
     
    227227    }
    228228}
    229229
    230 void CNetClient::Flush()
     230void CNetClientWorker::Flush()
    231231{
    232232    if (m_Session)
    233233        m_Session->Flush();
    234234}
    235235
    236 void CNetClient::GuiPoll(JS::MutableHandleValue ret)
     236void CNetClientWorker::GuiPoll(JS::MutableHandleValue ret)
    237237{
    238238    if (m_GuiMessageQueue.empty())
    239239    {
     
    245245    m_GuiMessageQueue.pop_front();
    246246}
    247247
    248 void CNetClient::PushGuiMessage(const JS::HandleValue message)
     248void CNetClientWorker::PushGuiMessage(const JS::HandleValue message)
    249249{
    250250    ENSURE(!message.isUndefined());
    251251
     
    252252    m_GuiMessageQueue.push_back(JS::Heap<JS::Value>(message));
    253253}
    254254
    255 std::string CNetClient::TestReadGuiMessages()
     255std::string CNetClientWorker::TestReadGuiMessages()
    256256{
    257257    JSContext* cx = GetScriptInterface().GetContext();
    258258    JSAutoRequest rq(cx);
     
    269269    return r;
    270270}
    271271
    272 ScriptInterface& CNetClient::GetScriptInterface()
     272ScriptInterface& CNetClientWorker::GetScriptInterface()
    273273{
    274274    return m_Game->GetSimulation2()->GetScriptInterface();
    275275}
    276276
    277 void CNetClient::PostPlayerAssignmentsToScript()
     277void CNetClientWorker::PostPlayerAssignmentsToScript()
    278278{
    279279    JSContext* cx = GetScriptInterface().GetContext();
    280280    JSAutoRequest rq(cx);
     
    298298    PushGuiMessage(msg);
    299299}
    300300
    301 bool CNetClient::SendMessage(const CNetMessage* message)
     301bool CNetClientWorker::SendMessage(const CNetMessage* message)
    302302{
    303303    if (!m_Session)
    304304        return false;
     
    306306    return m_Session->SendMessage(message);
    307307}
    308308
    309 void CNetClient::HandleConnect()
     309void CNetClientWorker::HandleConnect()
    310310{
    311311    Update((uint)NMT_CONNECT_COMPLETE, NULL);
    312312}
    313313
    314 void CNetClient::HandleDisconnect(u32 reason)
     314void CNetClientWorker::HandleDisconnect(u32 reason)
    315315{
    316316    JSContext* cx = GetScriptInterface().GetContext();
    317317    JSAutoRequest rq(cx);
     
    328328    SetCurrState(NCS_UNCONNECTED);
    329329}
    330330
    331 void CNetClient::SendGameSetupMessage(JS::MutableHandleValue attrs, ScriptInterface& scriptInterface)
     331void CNetClientWorker::SendGameSetupMessage(JS::MutableHandleValue attrs, ScriptInterface& scriptInterface)
    332332{
    333333    CGameSetupMessage gameSetup(scriptInterface);
    334334    gameSetup.m_Data = attrs;
     
    335335    SendMessage(&gameSetup);
    336336}
    337337
    338 void CNetClient::SendAssignPlayerMessage(const int playerID, const CStr& guid)
     338void CNetClientWorker::SendAssignPlayerMessage(const int playerID, const CStr& guid)
    339339{
    340340    CAssignPlayerMessage assignPlayer;
    341341    assignPlayer.m_PlayerID = playerID;
     
    343343    SendMessage(&assignPlayer);
    344344}
    345345
    346 void CNetClient::SendChatMessage(const std::wstring& text)
     346void CNetClientWorker::SendChatMessage(const std::wstring& text)
    347347{
    348348    CChatMessage chat;
    349349    chat.m_Message = text;
     
    350350    SendMessage(&chat);
    351351}
    352352
    353 void CNetClient::SendReadyMessage(const int status)
     353void CNetClientWorker::SendReadyMessage(const int status)
    354354{
    355355    CReadyMessage readyStatus;
    356356    readyStatus.m_Status = status;
     
    357357    SendMessage(&readyStatus);
    358358}
    359359
    360 void CNetClient::SendClearAllReadyMessage()
     360void CNetClientWorker::SendClearAllReadyMessage()
    361361{
    362362    CClearAllReadyMessage clearAllReady;
    363363    SendMessage(&clearAllReady);
    364364}
    365365
    366 void CNetClient::SendStartGameMessage()
     366void CNetClientWorker::SendStartGameMessage()
    367367{
    368368    CGameStartMessage gameStart;
    369369    SendMessage(&gameStart);
    370370}
    371371
    372 void CNetClient::SendRejoinedMessage()
     372void CNetClientWorker::SendRejoinedMessage()
    373373{
    374374    CRejoinedMessage rejoinedMessage;
    375375    SendMessage(&rejoinedMessage);
    376376}
    377377
    378 void CNetClient::SendKickPlayerMessage(const CStrW& playerName, bool ban)
     378void CNetClientWorker::SendKickPlayerMessage(const CStrW& playerName, bool ban)
    379379{
    380380    CKickedMessage kickPlayer;
    381381    kickPlayer.m_Name = playerName;
     
    383383    SendMessage(&kickPlayer);
    384384}
    385385
    386 void CNetClient::SendPausedMessage(bool pause)
     386void CNetClientWorker::SendPausedMessage(bool pause)
    387387{
    388388    CClientPausedMessage pausedMessage;
    389389    pausedMessage.m_Pause = pause;
     
    390390    SendMessage(&pausedMessage);
    391391}
    392392
    393 bool CNetClient::HandleMessage(CNetMessage* message)
     393bool CNetClientWorker::HandleMessage(CNetMessage* message)
    394394{
    395395    // Handle non-FSM messages first
    396396
     
    433433    return ok;
    434434}
    435435
    436 void CNetClient::LoadFinished()
     436void CNetClientWorker::LoadFinished()
    437437{
    438438    JSContext* cx = GetScriptInterface().GetContext();
    439439    JSAutoRequest rq(cx);
     
    476476    SendMessage(&loaded);
    477477}
    478478
    479 bool CNetClient::OnConnect(void* context, CFsmEvent* event)
     479bool CNetClientWorker::OnConnect(void* context, CFsmEvent* event)
    480480{
    481481    ENSURE(event->GetType() == (uint)NMT_CONNECT_COMPLETE);
    482482
    483     CNetClient* client = (CNetClient*)context;
     483    CNetClientWorker* client = (CNetClientWorker*)context;
    484484
    485485    JSContext* cx = client->GetScriptInterface().GetContext();
    486486    JSAutoRequest rq(cx);
     
    492492    return true;
    493493}
    494494
    495 bool CNetClient::OnHandshake(void* context, CFsmEvent* event)
     495bool CNetClientWorker::OnHandshake(void* context, CFsmEvent* event)
    496496{
    497497    ENSURE(event->GetType() == (uint)NMT_SERVER_HANDSHAKE);
    498498
    499     CNetClient* client = (CNetClient*)context;
     499    CNetClientWorker* client = (CNetClientWorker*)context;
    500500
    501501    CCliHandshakeMessage handshake;
    502502    handshake.m_MagicResponse = PS_PROTOCOL_MAGIC_RESPONSE;
     
    507507    return true;
    508508}
    509509
    510 bool CNetClient::OnHandshakeResponse(void* context, CFsmEvent* event)
     510bool CNetClientWorker::OnHandshakeResponse(void* context, CFsmEvent* event)
    511511{
    512512    ENSURE(event->GetType() == (uint)NMT_SERVER_HANDSHAKE_RESPONSE);
    513513
    514     CNetClient* client = (CNetClient*)context;
     514    CNetClientWorker* client = (CNetClientWorker*)context;
    515515
    516516    CAuthenticateMessage authenticate;
    517517    authenticate.m_GUID = client->m_GUID;
     
    523523    return true;
    524524}
    525525
    526 bool CNetClient::OnAuthenticate(void* context, CFsmEvent* event)
     526bool CNetClientWorker::OnAuthenticate(void* context, CFsmEvent* event)
    527527{
    528528    ENSURE(event->GetType() == (uint)NMT_AUTHENTICATE_RESULT);
    529529
    530     CNetClient* client = (CNetClient*)context;
     530    CNetClientWorker* client = (CNetClientWorker*)context;
    531531
    532532    JSContext* cx = client->GetScriptInterface().GetContext();
    533533    JSAutoRequest rq(cx);
     
    547547    return true;
    548548}
    549549
    550 bool CNetClient::OnChat(void* context, CFsmEvent* event)
     550bool CNetClientWorker::OnChat(void* context, CFsmEvent* event)
    551551{
    552552    ENSURE(event->GetType() == (uint)NMT_CHAT);
    553553
    554     CNetClient* client = (CNetClient*)context;
     554    CNetClientWorker* client = (CNetClientWorker*)context;
    555555    JSContext* cx = client->GetScriptInterface().GetContext();
    556556    JSAutoRequest rq(cx);
    557557
     
    566566    return true;
    567567}
    568568
    569 bool CNetClient::OnReady(void* context, CFsmEvent* event)
     569bool CNetClientWorker::OnReady(void* context, CFsmEvent* event)
    570570{
    571571    ENSURE(event->GetType() == (uint)NMT_READY);
    572572
    573     CNetClient* client = (CNetClient*)context;
     573    CNetClientWorker* client = (CNetClientWorker*)context;
    574574    JSContext* cx = client->GetScriptInterface().GetContext();
    575575    JSAutoRequest rq(cx);
    576576
     
    585585    return true;
    586586}
    587587
    588 bool CNetClient::OnGameSetup(void* context, CFsmEvent* event)
     588bool CNetClientWorker::OnGameSetup(void* context, CFsmEvent* event)
    589589{
    590590    ENSURE(event->GetType() == (uint)NMT_GAME_SETUP);
    591591
    592     CNetClient* client = (CNetClient*)context;
     592    CNetClientWorker* client = (CNetClientWorker*)context;
    593593    JSContext* cx = client->GetScriptInterface().GetContext();
    594594    JSAutoRequest rq(cx);
    595595
     
    605605    return true;
    606606}
    607607
    608 bool CNetClient::OnPlayerAssignment(void* context, CFsmEvent* event)
     608bool CNetClientWorker::OnPlayerAssignment(void* context, CFsmEvent* event)
    609609{
    610610    ENSURE(event->GetType() == (uint)NMT_PLAYER_ASSIGNMENT);
    611611
    612     CNetClient* client = (CNetClient*)context;
     612    CNetClientWorker* client = (CNetClientWorker*)context;
    613613
    614614    CPlayerAssignmentMessage* message = (CPlayerAssignmentMessage*)event->GetParamRef();
    615615
     
    632632    return true;
    633633}
    634634
    635 bool CNetClient::OnGameStart(void* context, CFsmEvent* event)
     635bool CNetClientWorker::OnGameStart(void* context, CFsmEvent* event)
    636636{
    637637    ENSURE(event->GetType() == (uint)NMT_GAME_START);
    638638
    639     CNetClient* client = (CNetClient*)context;
     639    CNetClientWorker* client = (CNetClientWorker*)context;
    640640    JSContext* cx = client->GetScriptInterface().GetContext();
    641641    JSAutoRequest rq(cx);
    642642
     
    658658    return true;
    659659}
    660660
    661 bool CNetClient::OnJoinSyncStart(void* context, CFsmEvent* event)
     661bool CNetClientWorker::OnJoinSyncStart(void* context, CFsmEvent* event)
    662662{
    663663    ENSURE(event->GetType() == (uint)NMT_JOIN_SYNC_START);
    664664
    665     CNetClient* client = (CNetClient*)context;
     665    CNetClientWorker* client = (CNetClientWorker*)context;
    666666
    667667    // The server wants us to start downloading the game state from it, so do so
    668668    client->m_Session->GetFileTransferer().StartTask(
     
    672672    return true;
    673673}
    674674
    675 bool CNetClient::OnJoinSyncEndCommandBatch(void* context, CFsmEvent* event)
     675bool CNetClientWorker::OnJoinSyncEndCommandBatch(void* context, CFsmEvent* event)
    676676{
    677677    ENSURE(event->GetType() == (uint)NMT_END_COMMAND_BATCH);
    678678
    679     CNetClient* client = (CNetClient*)context;
     679    CNetClientWorker* client = (CNetClientWorker*)context;
    680680
    681681    CEndCommandBatchMessage* endMessage = (CEndCommandBatchMessage*)event->GetParamRef();
    682682
     
    688688    return true;
    689689}
    690690
    691 bool CNetClient::OnRejoined(void* context, CFsmEvent* event)
     691bool CNetClientWorker::OnRejoined(void* context, CFsmEvent* event)
    692692{
    693693    ENSURE(event->GetType() == (uint)NMT_REJOINED);
    694694
    695     CNetClient* client = (CNetClient*)context;
     695    CNetClientWorker* client = (CNetClientWorker*)context;
    696696    JSContext* cx = client->GetScriptInterface().GetContext();
    697697    JSAutoRequest rq(cx);
    698698
     
    705705    return true;
    706706}
    707707
    708 bool CNetClient::OnKicked(void *context, CFsmEvent* event)
     708bool CNetClientWorker::OnKicked(void *context, CFsmEvent* event)
    709709{
    710710    ENSURE(event->GetType() == (uint)NMT_KICKED);
    711711
    712     CNetClient* client = (CNetClient*)context;
     712    CNetClientWorker* client = (CNetClientWorker*)context;
    713713    JSContext* cx = client->GetScriptInterface().GetContext();
    714714    JSAutoRequest rq(cx);
    715715
     
    725725    return true;
    726726}
    727727
    728 bool CNetClient::OnClientTimeout(void *context, CFsmEvent* event)
     728bool CNetClientWorker::OnClientTimeout(void *context, CFsmEvent* event)
    729729{
    730730    // Report the timeout of some other client
    731731
    732732    ENSURE(event->GetType() == (uint)NMT_CLIENT_TIMEOUT);
    733733
    734     CNetClient* client = (CNetClient*)context;
     734    CNetClientWorker* client = (CNetClientWorker*)context;
    735735    JSContext* cx = client->GetScriptInterface().GetContext();
    736736    JSAutoRequest rq(cx);
    737737
     
    749749    return true;
    750750}
    751751
    752 bool CNetClient::OnClientPerformance(void *context, CFsmEvent* event)
     752bool CNetClientWorker::OnClientPerformance(void *context, CFsmEvent* event)
    753753{
    754754    // Performance statistics for one or multiple clients
    755755
    756756    ENSURE(event->GetType() == (uint)NMT_CLIENT_PERFORMANCE);
    757757
    758     CNetClient* client = (CNetClient*)context;
     758    CNetClientWorker* client = (CNetClientWorker*)context;
    759759    JSContext* cx = client->GetScriptInterface().GetContext();
    760760    JSAutoRequest rq(cx);
    761761
     
    780780    return true;
    781781}
    782782
    783 bool CNetClient::OnClientsLoading(void *context, CFsmEvent *event)
     783bool CNetClientWorker::OnClientsLoading(void *context, CFsmEvent *event)
    784784{
    785785    ENSURE(event->GetType() == (uint)NMT_CLIENTS_LOADING);
    786786
     
    791791    for (const CClientsLoadingMessage::S_m_Clients& client : message->m_Clients)
    792792        guids.push_back(client.m_GUID);
    793793
    794     CNetClient* client = (CNetClient*)context;
     794    CNetClientWorker* client = (CNetClientWorker*)context;
    795795    JSContext* cx = client->GetScriptInterface().GetContext();
    796796    JSAutoRequest rq(cx);
    797797
     
    802802    return true;
    803803}
    804804
    805 bool CNetClient::OnClientPaused(void *context, CFsmEvent *event)
     805bool CNetClientWorker::OnClientPaused(void *context, CFsmEvent *event)
    806806{
    807807    ENSURE(event->GetType() == (uint)NMT_CLIENT_PAUSED);
    808808
    809     CNetClient* client = (CNetClient*)context;
     809    CNetClientWorker* client = (CNetClientWorker*)context;
    810810    JSContext* cx = client->GetScriptInterface().GetContext();
    811811    JSAutoRequest rq(cx);
    812812
     
    821821    return true;
    822822}
    823823
    824 bool CNetClient::OnLoadedGame(void* context, CFsmEvent* event)
     824bool CNetClientWorker::OnLoadedGame(void* context, CFsmEvent* event)
    825825{
    826826    ENSURE(event->GetType() == (uint)NMT_LOADED_GAME);
    827827
    828     CNetClient* client = (CNetClient*)context;
     828    CNetClientWorker* client = (CNetClientWorker*)context;
    829829    JSContext* cx = client->GetScriptInterface().GetContext();
    830830    JSAutoRequest rq(cx);
    831831
     
    844844    return true;
    845845}
    846846
    847 bool CNetClient::OnInGame(void *context, CFsmEvent* event)
     847bool CNetClientWorker::OnInGame(void *context, CFsmEvent* event)
    848848{
    849849    // TODO: should split each of these cases into a separate method
    850850
    851     CNetClient* client = (CNetClient*)context;
     851    CNetClientWorker* client = (CNetClientWorker*)context;
    852852
    853853    CNetMessage* message = (CNetMessage*)event->GetParamRef();
    854854    if (message)
  • source/network/NetClient.h

     
    2323#include "network/NetHost.h"
    2424#include "scriptinterface/ScriptVal.h"
    2525
     26#include "ps/ThreadUtil.h"
    2627#include "ps/CStr.h"
    2728
    2829#include <deque>
     
    3334class CNetServer;
    3435class ScriptInterface;
    3536
     37class CNetClientWorker;
     38
    3639// NetClient session FSM states
    3740enum
    3841{
     
    5457 * It provides an interface between the GUI, the network (via CNetClientSession),
    5558 * and the game (via CGame and CNetClientTurnManager).
    5659 */
    57 class CNetClient : public CFsm
     60class CNetClient
    5861{
    5962    NONCOPYABLE(CNetClient);
    6063
    61     friend class CNetFileReceiveTask_ClientRejoin;
    62 
    6364public:
    64     /**
     65    /**
    6566     * Construct a client associated with the given game object.
    6667     * The game must exist for the lifetime of this object.
    6768     */
     
    7071    virtual ~CNetClient();
    7172
    7273    /**
     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 */
     97class CNetClientWorker
     98{
     99    NONCOPYABLE(CNetClientWorker);
     100
     101public:
     102    /**
    73103     * We assume that adding a tracing function that's only called
    74104     * during GC is better for performance than using a
    75105     * PersistentRooted<T> where each value needs to be added to
     
    77107     */
    78108    static void Trace(JSTracer *trc, void *data)
    79109    {
    80         reinterpret_cast<CNetClient*>(data)->TraceMember(trc);
     110        reinterpret_cast<CNetClientWorker*>(data)->TraceMember(trc);
    81111    }
    82112
    83113    void TraceMember(JSTracer *trc);
    84114
    85115    /**
    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     /**
    92116     * Returns the GUID of the local client.
    93117     * Used for distinguishing observers.
    94118     */
     
    95119    CStr GetGUID() const { return m_GUID; }
    96120
    97121    /**
    98      * Set up a connection to the remote networked server.
    99      * @param server IP address or host name to connect to
    100      * @return true on success, false on connection failure
    101      */
    102     bool SetupConnection(const CStr& server, const u16 port);
    103 
    104     /**
    105122     * Destroy the connection to the server.
    106123     * This client probably cannot be used again.
    107124     */
     
    216233    void SendPausedMessage(bool pause);
    217234
    218235private:
     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
    219249    // Net message / FSM transition handlers
    220250    static bool OnConnect(void* context, CFsmEvent* event);
    221251    static bool OnHandshake(void* context, CFsmEvent* event);
  • source/network/NetClientTurnManager.cpp

     
    3333#define NETCLIENTTURN_LOG(...)
    3434#endif
    3535
    36 CNetClientTurnManager::CNetClientTurnManager(CSimulation2& simulation, CNetClient& client, int clientId, IReplayLogger& replay)
     36CNetClientTurnManager::CNetClientTurnManager(CSimulation2& simulation, CNetClientWorker& client, int clientId, IReplayLogger& replay)
    3737    : CTurnManager(simulation, DEFAULT_TURN_LENGTH_MP, clientId, replay), m_NetClient(client)
    3838{
    3939}
  • source/network/NetClientTurnManager.h

     
    2121#include "simulation2/system/TurnManager.h"
    2222#include "NetMessage.h"
    2323
    24 class CNetClient;
     24class CNetClientWorker;
    2525
    2626/**
    2727 * Implementation of CTurnManager for network clients.
     
    3030{
    3131    NONCOPYABLE(CNetClientTurnManager);
    3232public:
    33     CNetClientTurnManager(CSimulation2& simulation, CNetClient& client, int clientId, IReplayLogger& replay);
     33    CNetClientTurnManager(CSimulation2& simulation, CNetClientWorker& client, int clientId, IReplayLogger& replay);
    3434
    3535    void OnSimulationMessage(CSimulationMessage* msg) override;
    3636
     
    4848
    4949    void NotifyFinishedUpdate(u32 turn) override;
    5050
    51     CNetClient& m_NetClient;
     51    CNetClientWorker& m_NetClient;
    5252};
    5353
    5454#endif // INCLUDED_NETCLIENTTURNMANAGER
  • source/network/NetSession.cpp

     
    3232
    3333static const int CHANNEL_COUNT = 1;
    3434
    35 CNetClientSession::CNetClientSession(CNetClient& client) :
     35CNetClientSession::CNetClientSession(CNetClientWorker& client) :
    3636    m_Client(client), m_FileTransferer(this), m_Host(NULL), m_Server(NULL), m_Stats(NULL)
    3737{
    3838}
  • source/network/NetSession.h

     
    3434 */
    3535extern const u32 MAXIMUM_HOST_TIMEOUT;
    3636
    37 class CNetClient;
     37class CNetClientWorker;
    3838class CNetServerWorker;
    3939
    4040class CNetStatsTable;
     
    6767    NONCOPYABLE(CNetClientSession);
    6868
    6969public:
    70     CNetClientSession(CNetClient& client);
     70    CNetClientSession(CNetClientWorker& client);
    7171    ~CNetClientSession();
    7272
    7373    bool Connect(const CStr& server, const u16 port, const bool isLocalClient);
     
    106106    CNetFileTransferer& GetFileTransferer() { return m_FileTransferer; }
    107107
    108108private:
    109     CNetClient& m_Client;
     109    CNetClientWorker& m_Client;
    110110
    111111    CNetFileTransferer m_FileTransferer;
    112112
  • source/ps/GameSetup/GameSetup.cpp

     
    14981498        bool ok = g_NetServer->SetupConnection(PS_DEFAULT_PORT);
    14991499        ENSURE(ok);
    15001500
    1501         g_NetClient = new CNetClient(g_Game, true);
     1501        g_NetClient = new CNetClientWorker(g_Game, true);
    15021502        g_NetClient->SetUserName(userName);
    15031503        g_NetClient->SetupConnection("127.0.0.1", PS_DEFAULT_PORT);
    15041504    }
     
    15061506    {
    15071507        InitPs(true, L"page_loading.xml", &scriptInterface, mpInitData);
    15081508
    1509         g_NetClient = new CNetClient(g_Game, false);
     1509        g_NetClient = new CNetClientWorker(g_Game, false);
    15101510        g_NetClient->SetUserName(userName);
    15111511
    15121512        CStr ip = args.Get("autostart-client");