Add disconnect type param to Terminate

This commit is contained in:
puvvadar
2021-06-23 11:44:21 -07:00
parent bda758a9c5
commit 632d774d4c
3 changed files with 9 additions and 8 deletions
@@ -94,7 +94,8 @@ namespace Multiplayer
virtual bool Connect(AZStd::string remoteAddress, uint16_t port) = 0;
// Disconnects all multiplayer connections, stops listening on the server and invokes handlers appropriate to network context
virtual void Terminate() = 0;
//! @param reason The reason for terminating connections
virtual void Terminate(AzNetworking::DisconnectReason reason) = 0;
//! Adds a ClientDisconnectedEvent Handler which is invoked on the client when a disconnection occurs
//! @param handler The ClientDisconnectedEvent Handler to add
@@ -214,10 +214,10 @@ namespace Multiplayer
return m_networkInterface->Connect(address) != InvalidConnectionId;
}
void MultiplayerSystemComponent::Terminate()
void MultiplayerSystemComponent::Terminate(AzNetworking::DisconnectReason reason)
{
// Cleanup connections, fire events and uninitialize state
auto visitor = [](IConnection& connection) { connection.Disconnect(DisconnectReason::TerminatedByUser, TerminationEndpoint::Local); };
auto visitor = [reason](IConnection& connection) { connection.Disconnect(reason, TerminationEndpoint::Local); };
m_networkInterface->GetConnectionSet().VisitConnections(visitor);
if (GetAgentType() == MultiplayerAgentType::DedicatedServer || GetAgentType() == MultiplayerAgentType::ClientServer)
{
@@ -249,7 +249,7 @@ namespace Multiplayer
{
if (GetAgentType() == MultiplayerAgentType::Client)
{
Terminate();
Terminate(DisconnectReason::TerminatedByUser);
}
}
@@ -293,7 +293,7 @@ namespace Multiplayer
return true;
}
auto visitor = [](IConnection& connection) { connection.Disconnect(DisconnectReason::TerminatedByUser, TerminationEndpoint::Local); };
auto visitor = [](IConnection& connection) { connection.Disconnect(DisconnectReason::TerminatedByServer, TerminationEndpoint::Local); };
m_networkInterface->GetConnectionSet().VisitConnections(visitor);
if (GetAgentType() == MultiplayerAgentType::DedicatedServer || GetAgentType() == MultiplayerAgentType::ClientServer)
{
@@ -716,7 +716,7 @@ namespace Multiplayer
{
if (m_networkInterface->GetConnectionSet().GetActiveConnectionCount() == 0)
{
Terminate();
Terminate(DisconnectReason::TerminatedByServer);
}
}
}
@@ -989,7 +989,7 @@ namespace Multiplayer
void disconnect([[maybe_unused]] const AZ::ConsoleCommandContainer& arguments)
{
AZ::Interface<IMultiplayer>::Get()->Terminate();
AZ::Interface<IMultiplayer>::Get()->Terminate(DisconnectReason::TerminatedByUser);
}
AZ_CONSOLEFREEFUNC(disconnect, AZ::ConsoleFunctorFlags::DontReplicate, "Disconnects any open multiplayer connections");
}
@@ -114,7 +114,7 @@ namespace Multiplayer
void AddSessionShutdownHandler(SessionShutdownEvent::Handler& handler) override;
bool StartHosting(uint16_t port, bool isDedicated = true) override;
bool Connect(AZStd::string remoteAddress, uint16_t port) override;
void Terminate() override;
void Terminate(AzNetworking::DisconnectReason reason) override;
void SendReadyForEntityUpdates(bool readyForEntityUpdates) override;
AZ::TimeMs GetCurrentHostTimeMs() const override;
INetworkTime* GetNetworkTime() override;