// Copyright Epic Games, Inc. All Rights Reserved. using EpicGames.Horde; namespace UnrealToolbox { /// /// Reference to a Horde client instance. Should be disposed of when done. /// interface IHordeClientRef : IDisposable { /// /// The client instance /// IHordeClient Client { get; } } /// /// Accessor for a instance which can be recreated in response to config changes. /// interface IHordeClientProvider { /// /// Event signalled whenever the connection state changes /// event Action? OnStateChanged; /// /// Event signalled whenever the access token state changes /// event Action? OnAccessTokenStateChanged; /// /// Resets the current client and creates a new one with the latest settings. /// void Reset(); /// /// Gets a reference to the current client instance. These references should be kept as short as possible. /// IHordeClientRef? GetClientRef(); } }