Add handling for session provider ticket

This commit is contained in:
puvvadar
2021-06-08 13:36:27 -07:00
parent 2b227a17d1
commit fa55b495c4
8 changed files with 75 additions and 25 deletions
@@ -21,10 +21,12 @@ namespace Multiplayer
ClientToServerConnectionData::ClientToServerConnectionData
(
AzNetworking::IConnection* connection,
AzNetworking::IConnectionListener& connectionListener
AzNetworking::IConnectionListener& connectionListener,
AZStd::string providerTicket
)
: m_connection(connection)
, m_entityReplicationManager(*connection, connectionListener, EntityReplicationManager::Mode::LocalClientToRemoteServer)
, m_providerTicket(providerTicket)
{
m_entityReplicationManager.SetMaxRemoteEntitiesPendingCreationCount(cl_ClientMaxRemoteEntitiesPendingCreationCount);
m_entityReplicationManager.SetEntityPendingRemovalMs(cl_ClientEntityReplicatorPendingRemovalTimeMs);
@@ -24,7 +24,8 @@ namespace Multiplayer
ClientToServerConnectionData
(
AzNetworking::IConnection* connection,
AzNetworking::IConnectionListener& connectionListener
AzNetworking::IConnectionListener& connectionListener,
AZStd::string providerTicket = ""
);
~ClientToServerConnectionData() override;
@@ -38,8 +39,11 @@ namespace Multiplayer
void SetCanSendUpdates(bool canSendUpdates) override;
//! @}
AZStd::string GetProviderTicket() const;
private:
EntityReplicationManager m_entityReplicationManager;
AZStd::string m_providerTicket;
AzNetworking::IConnection* m_connection = nullptr;
bool m_canSendUpdates = true;
};
@@ -21,4 +21,9 @@ namespace Multiplayer
{
m_canSendUpdates = canSendUpdates;
}
inline AZStd::string ClientToServerConnectionData::GetProviderTicket() const
{
return m_providerTicket;
}
}
@@ -41,6 +41,8 @@ namespace Multiplayer
NetworkEntityHandle GetPrimaryPlayerEntity();
const NetworkEntityHandle& GetPrimaryPlayerEntity() const;
AZStd::string GetProviderTicket() const;
void SetProviderTicket(AZStd::string);
private:
void OnControlledEntityRemove();
@@ -51,6 +53,7 @@ namespace Multiplayer
NetworkEntityHandle m_controlledEntity;
EntityStopEvent::Handler m_controlledEntityRemovedHandler;
EntityServerMigrationEvent::Handler m_controlledEntityMigrationHandler;
AZStd::string m_ticket;
AzNetworking::IConnection* m_connection = nullptr;
bool m_canSendUpdates = false;
};
@@ -32,4 +32,14 @@ namespace Multiplayer
{
return m_controlledEntity;
}
inline AZStd::string ServerToClientConnectionData::GetProviderTicket() const
{
return m_ticket;
}
inline void ServerToClientConnectionData::SetProviderTicket(AZStd::string ticket)
{
m_ticket = ticket;
}
}