ClientToServerConnectionData.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include <Multiplayer/ConnectionData/IConnectionData.h>
  10. #include <Multiplayer/NetworkEntity/EntityReplication/EntityReplicationManager.h>
  11. namespace Multiplayer
  12. {
  13. class ClientToServerConnectionData final
  14. : public IConnectionData
  15. {
  16. public:
  17. ClientToServerConnectionData
  18. (
  19. AzNetworking::IConnection* connection,
  20. AzNetworking::IConnectionListener& connectionListener,
  21. const AZStd::string& providerTicket = ""
  22. );
  23. ~ClientToServerConnectionData() override;
  24. //! IConnectionData interface
  25. //! @{
  26. ConnectionDataType GetConnectionDataType() const override;
  27. AzNetworking::IConnection* GetConnection() const override;
  28. EntityReplicationManager& GetReplicationManager() override;
  29. void Update() override;
  30. bool CanSendUpdates() const override;
  31. void SetCanSendUpdates(bool canSendUpdates) override;
  32. bool DidHandshake() const override;
  33. void SetDidHandshake(bool didHandshake) override;
  34. //! @}
  35. const AZStd::string& GetProviderTicket() const;
  36. void SetProviderTicket(const AZStd::string&);
  37. private:
  38. EntityReplicationManager m_entityReplicationManager;
  39. AZStd::string m_providerTicket;
  40. AzNetworking::IConnection* m_connection = nullptr;
  41. bool m_canSendUpdates = true;
  42. bool m_didHandshake = false;
  43. };
  44. }
  45. #include <Source/ConnectionData/ClientToServerConnectionData.inl>