refactor(runtime): compose canonical game runtime root
This commit is contained in:
parent
75f9510e10
commit
96ddd16539
6 changed files with 1585 additions and 0 deletions
|
|
@ -15,6 +15,30 @@ public enum LiveSessionStartStatus
|
|||
Failed,
|
||||
}
|
||||
|
||||
public readonly record struct LiveSessionOwnershipSnapshot(
|
||||
bool IsDisposed,
|
||||
bool IsDisposeRequested,
|
||||
bool IsInWorld,
|
||||
bool HasActiveSession,
|
||||
bool HasRetiredSession,
|
||||
bool HasPendingInitialReset,
|
||||
bool HasPendingOperation,
|
||||
int OperationDepth,
|
||||
ulong Generation,
|
||||
RuntimeTeardownStage LastTeardownStages)
|
||||
{
|
||||
public bool IsConverged =>
|
||||
IsDisposed
|
||||
&& IsDisposeRequested
|
||||
&& !IsInWorld
|
||||
&& !HasActiveSession
|
||||
&& !HasRetiredSession
|
||||
&& !HasPendingInitialReset
|
||||
&& !HasPendingOperation
|
||||
&& OperationDepth == 0
|
||||
&& LastTeardownStages == RuntimeTeardownStage.Complete;
|
||||
}
|
||||
|
||||
public sealed record LiveSessionCharacterSelection(
|
||||
int ActiveIndex,
|
||||
uint CharacterId,
|
||||
|
|
@ -272,6 +296,24 @@ public sealed class LiveSessionController
|
|||
get { lock (_gate) return _disposed; }
|
||||
}
|
||||
|
||||
public LiveSessionOwnershipSnapshot CaptureOwnership()
|
||||
{
|
||||
lock (_gate)
|
||||
{
|
||||
return new LiveSessionOwnershipSnapshot(
|
||||
_disposed,
|
||||
_disposeRequested,
|
||||
_inWorld,
|
||||
_scope is not null,
|
||||
_retiredScope is not null,
|
||||
_pendingInitialResetHost is not null,
|
||||
_pendingOperation is not null,
|
||||
_operationDepth,
|
||||
_generation,
|
||||
_lastTeardownStages);
|
||||
}
|
||||
}
|
||||
|
||||
public LiveSessionStartResult Start(
|
||||
LiveSessionConnectOptions options,
|
||||
ILiveSessionLifecycleHost host)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue