Wait to activate the editor-server until CrySystemInitialized so that the logging system is ready. Automated testing listens for these logs

Signed-off-by: Gene Walters <genewalt@amazon.com>
This commit is contained in:
Gene Walters
2021-11-04 18:37:15 -07:00
parent 1f4cb58c5e
commit 3973a59d77
3 changed files with 27 additions and 7 deletions
+1 -1
View File
@@ -25,6 +25,7 @@ ly_add_target(
AZ::AzCore
AZ::AzFramework
AZ::AzNetworking
Legacy::CryCommon
PRIVATE
Gem::EMotionFXStaticLib
Gem::PhysX.Static
@@ -143,7 +144,6 @@ if (PAL_TRAIT_BUILD_HOST_TOOLS)
Include
BUILD_DEPENDENCIES
PRIVATE
Legacy::CryCommon
Legacy::Editor.Headers
AZ::AzCore
AZ::AzFramework
@@ -20,6 +20,7 @@
#include <AzCore/Serialization/Utils.h>
#include <AzNetworking/ConnectionLayer/IConnection.h>
#include <AzNetworking/Framework/INetworking.h>
#include <AzCore/Console/IConsole.h>
namespace Multiplayer
{
@@ -34,9 +35,24 @@ namespace Multiplayer
m_networkEditorInterface = AZ::Interface<INetworking>::Get()->CreateNetworkInterface(
AZ::Name(MpEditorInterfaceName), ProtocolType::Tcp, TrustZone::ExternalClientToServer, *this);
m_networkEditorInterface->SetTimeoutMs(AZ::TimeMs{ 0 }); // Disable timeouts on this network interface
ActivateDedicatedEditorServer();
CrySystemEventBus::Handler::BusConnect();
}
MultiplayerEditorConnection::~MultiplayerEditorConnection()
{
CrySystemEventBus::Handler::BusDisconnect();
}
void MultiplayerEditorConnection::OnCrySystemInitialized(ISystem&, const SSystemInitParams&)
{
if (editorsv_isDedicated)
{
// Wait to activate the editor-server until CrySystemInitialized so that the logging system is ready
// Automated testing listens for these logs
ActivateDedicatedEditorServer();
}
}
void MultiplayerEditorConnection::ActivateDedicatedEditorServer() const
{
if (m_isActivated || !editorsv_isDedicated)
@@ -8,12 +8,9 @@
#pragma once
#include <CrySystemBus.h>
#include <Source/AutoGen/MultiplayerEditor.AutoPacketDispatcher.h>
#include <AzCore/Console/IConsole.h>
#include <AzCore/Console/ILogger.h>
#include <AzCore/IO/ByteContainerStream.h>
#include <AzCore/std/string/string.h>
#include <AzNetworking/ConnectionLayer/IConnectionListener.h>
namespace AzNetworking
@@ -26,10 +23,12 @@ namespace Multiplayer
//! MultiplayerEditorConnection is a connection listener to synchronize the Editor and a local server it launches
class MultiplayerEditorConnection final
: public AzNetworking::IConnectionListener
, public CrySystemEventBus::Handler
{
public:
MultiplayerEditorConnection();
~MultiplayerEditorConnection() = default;
~MultiplayerEditorConnection();
bool HandleRequest(AzNetworking::IConnection* connection, const AzNetworking::IPacketHeader& packetHeader, MultiplayerEditorPackets::EditorServerReadyForLevelData& packet);
bool HandleRequest(AzNetworking::IConnection* connection, const AzNetworking::IPacketHeader& packetHeader, MultiplayerEditorPackets::EditorServerLevelData& packet);
@@ -43,6 +42,11 @@ namespace Multiplayer
void OnPacketLost([[maybe_unused]]AzNetworking::IConnection* connection, [[maybe_unused]]AzNetworking::PacketId packetId) override {}
void OnDisconnect([[maybe_unused]]AzNetworking::IConnection* connection, [[maybe_unused]]AzNetworking::DisconnectReason reason, [[maybe_unused]]AzNetworking::TerminationEndpoint endpoint) override {}
//! @}
//! CrySystemEvents interface
//! @{
void OnCrySystemInitialized(ISystem&, const SSystemInitParams&) override;
//! @}
private:
void ActivateDedicatedEditorServer() const;