43 lines
1.5 KiB
C#
43 lines
1.5 KiB
C#
using LightlessSync.API.Data;
|
|
|
|
namespace LightlessSync.PlayerData.Pairs;
|
|
|
|
/// <summary>
|
|
/// orchestrates the lifecycle of a paired character
|
|
/// </summary>
|
|
public interface IPairHandlerAdapter : IDisposable, IPairPerformanceSubject
|
|
{
|
|
new string Ident { get; }
|
|
bool Initialized { get; }
|
|
bool IsVisible { get; }
|
|
bool ScheduledForDeletion { get; set; }
|
|
CharacterData? LastReceivedCharacterData { get; }
|
|
long LastAppliedDataBytes { get; }
|
|
new string? PlayerName { get; }
|
|
string PlayerNameHash { get; }
|
|
uint PlayerCharacterId { get; }
|
|
DateTime? LastDataReceivedAt { get; }
|
|
DateTime? LastApplyAttemptAt { get; }
|
|
DateTime? LastSuccessfulApplyAt { get; }
|
|
string? LastFailureReason { get; }
|
|
IReadOnlyList<string> LastBlockingConditions { get; }
|
|
bool IsApplying { get; }
|
|
bool IsDownloading { get; }
|
|
int PendingDownloadCount { get; }
|
|
int ForbiddenDownloadCount { get; }
|
|
bool PendingModReapply { get; }
|
|
bool ModApplyDeferred { get; }
|
|
int MissingCriticalMods { get; }
|
|
int MissingNonCriticalMods { get; }
|
|
int MissingForbiddenMods { get; }
|
|
|
|
void Initialize();
|
|
void ApplyData(CharacterData data);
|
|
void ApplyLastReceivedData(bool forced = false);
|
|
Task EnsurePerformanceMetricsAsync(CancellationToken cancellationToken);
|
|
bool FetchPerformanceMetricsFromCache();
|
|
void LoadCachedCharacterData(CharacterData data);
|
|
void SetUploading(bool uploading);
|
|
void SetPaused(bool paused);
|
|
}
|