From e717d294014a6978dcb0d959aa49edcc3f142ab5 Mon Sep 17 00:00:00 2001 From: Damian Korczowski Date: Tue, 12 Oct 2021 18:18:57 +0200 Subject: [PATCH] Add NetworkDriver interface pointer to NetworkConfig --- Source/Engine/Networking/NetworkConfig.h | 9 ++++++++- Source/Engine/Networking/NetworkPeer.cpp | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Source/Engine/Networking/NetworkConfig.h b/Source/Engine/Networking/NetworkConfig.h index 8814759db..304ccef9d 100644 --- a/Source/Engine/Networking/NetworkConfig.h +++ b/Source/Engine/Networking/NetworkConfig.h @@ -4,6 +4,8 @@ #include "Engine/Platform/Network.h" +class PersistentScriptingObject; + /// /// Network driver implementations enum. /// @@ -33,7 +35,12 @@ public: /// API_FIELD() NetworkDriverType NetworkDriverType = NetworkDriverType::ENet; - // TODO: Expose INetworkDriver as a ref not enum, when C++/C# interfaces are done. + + /// + /// The network driver instance that will be used to create and manage the peer, send and receive messages. + /// + API_FIELD() + PersistentScriptingObject* NetworkDriver = nullptr; public: /// diff --git a/Source/Engine/Networking/NetworkPeer.cpp b/Source/Engine/Networking/NetworkPeer.cpp index 52bc72776..90a7967d6 100644 --- a/Source/Engine/Networking/NetworkPeer.cpp +++ b/Source/Engine/Networking/NetworkPeer.cpp @@ -20,7 +20,7 @@ void NetworkPeer::Initialize(const NetworkConfig& config) Config = config; ASSERT(NetworkDriver == nullptr); - ASSERT(Config.NetworkDriverType != NetworkDriverType::Undefined); + ASSERT(Config.NetworkDriver != nullptr); ASSERT(Config.ConnectionsLimit > 0); ASSERT(Config.MessageSize > 32); // TODO: Adjust this, not sure what the lowest limit should be. ASSERT(Config.MessagePoolSize > 128); @@ -35,7 +35,7 @@ void NetworkPeer::Initialize(const NetworkConfig& config) MessagePool.Push(messageId); // Setup network driver - NetworkDriver = New(); + NetworkDriver = ToInterface(Config.NetworkDriver); NetworkDriver->Initialize(this, Config); LOG(Info, "NetworkManager initialized using driver = {0}", static_cast(Config.NetworkDriverType));