// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. #pragma once #include "Types.h" #include "NetworkConnection.h" #include "NetworkConnectionState.h" #include "Engine/Scripting/ScriptingObject.h" /// /// High-level network client object (local or connected to the server). /// API_CLASS(sealed, NoSpawn, Namespace = "FlaxEngine.Networking") class FLAXENGINE_API NetworkClient final : public ScriptingObject { DECLARE_SCRIPTING_TYPE_NO_SPAWN(NetworkClient); friend class NetworkManager; explicit NetworkClient(uint32 id, NetworkConnection connection); public: /// /// Unique client identifier. /// API_FIELD(ReadOnly) uint32 ClientId; /// /// Local peer connection. /// API_FIELD(ReadOnly) NetworkConnection Connection; /// /// Client connection state. /// API_FIELD(ReadOnly) NetworkConnectionState State; public: String ToString() const override { return String::Format(TEXT("NetworkClient Id={0}, ConnectionId={1}"), ClientId, Connection.ConnectionId); } };