//
// ClientState.cs
//
// Copyright (c) František Boháček. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using NosSmooth.Comms.Inject.Messages;
using NosSmooth.LocalBinding;
using NosSmooth.LocalBinding.Options;
using Remora.Results;
namespace NosSmooth.Comms.Inject;
///
/// A state of the client.
///
public class ClientState
{
///
/// Gets the token cancelled upon starting the client ( received).
///
public CancellationTokenSource Starting { get; } = new CancellationTokenSource();
///
/// Gets the token cancelled when client has started (inside of ).
///
public CancellationTokenSource Started { get; } = new CancellationTokenSource();
///
/// Gets or sets whether the client is running.
///
public bool IsRunning { get; internal set; }
///
/// Gets or sets the result that was obtained upon initialization of the client.
///
public Result? InitResult { get; internal set; }
///
/// Gets or sets the result that was obtained from initialization of .
///
public Result? BindingResult { get; internal set; }
///
/// Gets or sets hook manager options.
///
public HookManagerOptions? HookOptions { get; internal set; }
///
/// Gets or sets unit manager options.
///
public UnitManagerOptions? UnitManagerOptions { get; internal set; }
///
/// Gets or sets scene manager options.
///
public SceneManagerOptions? SceneManagerOptions { get; internal set; }
///
/// Gets or sets network manager options.
///
public NetworkManagerOptions? NetworkManagerOptions { get; internal set; }
///
/// Gets or sets player manager options.
///
public PlayerManagerOptions? PlayerManagerOptions { get; internal set; }
///
/// Gets or sets pet manager options.
///
public PetManagerOptions? PetManagerOptions { get; internal set; }
///
/// Gets or sets nt client options.
///
public NtClientOptions? NtClientOptions { get; internal set; }
}