// 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();
}
}