Remove reactive state session wrappers
This commit is contained in:
parent
391e0e5939
commit
c5d92cbf53
8 changed files with 121 additions and 484 deletions
|
|
@ -7927,16 +7927,14 @@ static void RequireUnityViewportAndMapReadsUseManagedAccessors(string root)
|
|||
"public AetheriaRuntimeSectorMapDocument LatestSectorMap()",
|
||||
"public AetheriaRuntimeZoneContactsDocument LatestZoneContacts()",
|
||||
"public AetheriaRuntimeCurrentZoneDocument LatestZone()",
|
||||
"public AetheriaRuntimeCurrentZoneSession ObserveZone(",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeCurrentZoneDocument> ReactiveZone(",
|
||||
"public AetheriaRuntimeCurrentEntityDocument LatestEntity()",
|
||||
"public AetheriaRuntimeObjectsViewportDocument LatestObjects(AetheriaRuntimeRtsViewportBounds viewport)",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeObjectsViewportDocument> ReactiveObjects(",
|
||||
"public AetheriaRuntimeObjectsViewportSession ObserveObjects(",
|
||||
"public AetheriaRuntimeRenderSplatsViewportDocument LatestRenderSplats(AetheriaRuntimeRtsViewportBounds viewport)",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeRenderSplatsViewportDocument> ReactiveRenderSplats(",
|
||||
"public AetheriaRuntimeRenderSplatsViewportSession ObserveRenderSplats(",
|
||||
"public AetheriaRuntimeZoneDetailsDocument LatestZone(int zoneIndex)",
|
||||
"public AetheriaRuntimeZoneDetailsSession ObserveZone("
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeZoneDetailsDocument> ReactiveZone("
|
||||
};
|
||||
var missingClientSymbols = requiredClientSymbols
|
||||
.Where(symbol => !clientState.Contains(symbol, StringComparison.Ordinal))
|
||||
|
|
@ -15673,8 +15671,7 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
"public Observable<TDocument> Watch<TDocument>()",
|
||||
"public Task<CultMeshReactiveDocument<TDocument>> ReactiveAsync<TDocument>(",
|
||||
"public CultMeshReactiveDocument<TDocument> Reactive<TDocument>(",
|
||||
"public AetheriaRuntimeObservedDaemonState? CurrentObservedDaemon(",
|
||||
"public AetheriaRuntimeObservedDaemonSession ObserveDaemon("
|
||||
"public AetheriaRuntimeObservedDaemonState? CurrentObservedDaemon("
|
||||
};
|
||||
var missingManagedStateAccessSymbols = requiredManagedStateAccessSymbols
|
||||
.Where(symbol => !aetheriaClientState.Contains(symbol, StringComparison.Ordinal))
|
||||
|
|
@ -15689,15 +15686,10 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
var requiredManagedObservedDaemonSymbols = new[]
|
||||
{
|
||||
"public AetheriaRuntimeObservedDaemonState? CurrentObservedDaemon(",
|
||||
"public AetheriaRuntimeObservedDaemonSession ObserveDaemon(",
|
||||
"using var frame = ReactiveDaemonFrame(options);",
|
||||
"using var soaView = TryReactiveDaemonSoaView(options);",
|
||||
"using var zoneRender = ReactiveZoneRender(options);",
|
||||
"AetheriaRuntimeObservedDaemonState.TryCreateCurrent(frame, soaView, zoneRender, out var current)",
|
||||
"var frame = ReactiveDaemonFrame(options);",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeDaemonSoaViewDocument>? soaView = null;",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeZoneRenderDocument>? zoneRender = null;",
|
||||
"return new AetheriaRuntimeObservedDaemonSession(frame, soaView, zoneRender);"
|
||||
"AetheriaRuntimeObservedDaemonState.TryCreateCurrent(frame, soaView, zoneRender, out var current)"
|
||||
};
|
||||
var missingManagedObservedDaemonSymbols = requiredManagedObservedDaemonSymbols
|
||||
.Where(symbol => !aetheriaClientState.Contains(symbol, StringComparison.Ordinal))
|
||||
|
|
@ -15705,16 +15697,19 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
if (missingManagedObservedDaemonSymbols.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaClientState must compose current observed daemon state from managed typed reactive documents: " +
|
||||
"AetheriaClientState must compose current observed daemon state from direct managed reactive typed documents: " +
|
||||
string.Join(", ", missingManagedObservedDaemonSymbols));
|
||||
}
|
||||
|
||||
if (!daemonRuntimeDocumentTests.Contains("ManagedStateSamplesCurrentObservedDaemonFromReactiveDocuments()", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("using var observedSession = client.State.ObserveDaemon();", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("using var observedFrame = client.State.ReactiveDaemonFrame();", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("using var observedSoaView = client.State.ReactiveDaemonSoaView();", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("using var observedZoneRender = client.State.ReactiveZoneRender();", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("AetheriaRuntimeObservedDaemonState.TryCreateCurrent(", StringComparison.Ordinal) ||
|
||||
!daemonRuntimeDocumentTests.Contains("var sampledObserved = client.State.CurrentObservedDaemon();", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"Daemon runtime document tests must teach current observed daemon sampling through AetheriaClientState.ObserveDaemon() and CurrentObservedDaemon().");
|
||||
"Daemon runtime document tests must teach observed daemon sampling through direct reactive daemon documents and CurrentObservedDaemon().");
|
||||
}
|
||||
|
||||
var requiredObservedDaemonStateSymbols = new[]
|
||||
|
|
@ -15726,15 +15721,7 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
"CultMeshReactiveDocument<AetheriaRuntimeZoneRenderDocument> zoneRender",
|
||||
"var currentFrame = frame?.Current;",
|
||||
"var currentZoneRender = zoneRender?.Current;",
|
||||
"new AetheriaRuntimeObservedDaemonState(currentFrame, currentSoaView, currentZoneRender)",
|
||||
"public sealed class AetheriaRuntimeObservedDaemonSession",
|
||||
"private readonly CultMeshReactiveDocument<AetheriaRuntimeDaemonFrameDocument> _frame;",
|
||||
"private readonly CultMeshReactiveDocument<AetheriaRuntimeDaemonSoaViewDocument>? _soaView;",
|
||||
"private readonly CultMeshReactiveDocument<AetheriaRuntimeZoneRenderDocument> _zoneRender;",
|
||||
"public AetheriaRuntimeObservedDaemonState? Current =>",
|
||||
"_frame.Dispose();",
|
||||
"_soaView?.Dispose();",
|
||||
"_zoneRender.Dispose();"
|
||||
"new AetheriaRuntimeObservedDaemonState(currentFrame, currentSoaView, currentZoneRender)"
|
||||
};
|
||||
var missingObservedDaemonStateSymbols = requiredObservedDaemonStateSymbols
|
||||
.Where(symbol => !observedDaemonState.Contains(symbol, StringComparison.Ordinal))
|
||||
|
|
@ -15755,6 +15742,46 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
"Observed daemon state still composes legacy session wrappers instead of direct reactive CultMesh documents.");
|
||||
}
|
||||
|
||||
var clientStateSessionWrapperSymbols = new[]
|
||||
{
|
||||
"Session Observe",
|
||||
"new AetheriaRuntimeCatalogSession",
|
||||
"new AetheriaRuntimeDaemonFrameSession",
|
||||
"new AetheriaRuntimeLoadoutTemplatesSession",
|
||||
"new AetheriaRuntimeSectorMapSession",
|
||||
"new AetheriaRuntimeZoneContactsSession",
|
||||
"new AetheriaRuntimeStationRefitSession",
|
||||
"new AetheriaRuntimeZoneRenderSession",
|
||||
"new AetheriaRuntimeCurrentZoneSession",
|
||||
"new AetheriaRuntimeCurrentEntitySession",
|
||||
"new AetheriaRuntimeCurrentDockingSession",
|
||||
"new AetheriaRuntimePlayerSettingsSession",
|
||||
"new AetheriaRuntimeVerseHostSettingsSession",
|
||||
"new AetheriaRuntimeObjectsViewportSession",
|
||||
"new AetheriaRuntimeRenderSplatsViewportSession",
|
||||
"new AetheriaRuntimeInventorySession",
|
||||
"new AetheriaRuntimeStarbridgeScenarioSession",
|
||||
"new AetheriaRuntimeStarbridgeRunSession",
|
||||
"new AetheriaRuntimeStarbridgeSummarySession",
|
||||
"new AetheriaRuntimeStarbridgePlayerSeatSession"
|
||||
};
|
||||
var clientStateSessionWrapperHits = clientStateSessionWrapperSymbols
|
||||
.Where(symbol => aetheriaClientState.Contains(symbol, StringComparison.Ordinal))
|
||||
.ToArray();
|
||||
if (clientStateSessionWrapperHits.Length > 0)
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaClientState still exposes per-document Observe* session wrappers instead of direct Reactive* document access: " +
|
||||
string.Join(", ", clientStateSessionWrapperHits));
|
||||
}
|
||||
|
||||
var runtimeStateSessionsPath = Path.Combine(root, "Packages", "org.gamecult.aetheria.state", "Runtime", "AetheriaRuntimeStateSessions.cs");
|
||||
if (File.Exists(runtimeStateSessionsPath))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaRuntimeStateSessions.cs still exists; per-document session wrappers must be deleted in favor of direct CultMesh reactive documents.");
|
||||
}
|
||||
|
||||
var forbiddenObservedDaemonStateSymbols = new[]
|
||||
{
|
||||
"string statePath",
|
||||
|
|
@ -15882,13 +15909,17 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
!daemonObserver.Contains("AetheriaUnityRuntimeClientProvider.ResolveClient(", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("AetheriaRuntimeStateBoot.Inspect(AetheriaUnityRuntimePaths.GameDataDirectory)", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("AetheriaRuntimeObservedDaemonState", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("AetheriaRuntimeObservedDaemonSession _observedDaemon", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("_observedDaemon ??= ResolveClient()?.State?.ObserveDaemon();", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("return _observedDaemon?.Current;", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("CultMeshReactiveDocument<AetheriaRuntimeDaemonFrameDocument> _daemonFrame", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("CultMeshReactiveDocument<AetheriaRuntimeDaemonSoaViewDocument> _daemonSoaView", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("CultMeshReactiveDocument<AetheriaRuntimeZoneRenderDocument> _zoneRender", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("_daemonFrame ??= state.ReactiveDaemonFrame();", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("_daemonSoaView ??= TryReactiveDaemonSoaView(state);", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("_zoneRender ??= state.ReactiveZoneRender();", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("AetheriaRuntimeObservedDaemonState.TryCreateCurrent(", StringComparison.Ordinal) ||
|
||||
!daemonObserver.Contains("DisposeObservedDaemonSession()", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaDaemonObserver must sample observed daemon state through a single managed AetheriaRuntimeObservedDaemonSession.");
|
||||
"AetheriaDaemonObserver must sample observed daemon state through direct managed reactive daemon documents.");
|
||||
}
|
||||
|
||||
if (daemonObserver.Contains("AetheriaRuntimeStateReader.TryReadObservedDaemonState", StringComparison.Ordinal) ||
|
||||
|
|
@ -15896,17 +15927,13 @@ static void RequireRuntimeStateReaderOwnsUnityStateAcquisition(string root)
|
|||
daemonObserver.Contains("AetheriaRuntimeReactiveObservedDaemonState", StringComparison.Ordinal) ||
|
||||
daemonObserver.Contains(".ReactiveObservedDaemon()", StringComparison.Ordinal) ||
|
||||
daemonObserver.Contains("reactive.TryCurrent(out var observed)", StringComparison.Ordinal) ||
|
||||
daemonObserver.Contains("CultMeshReactiveDocument<AetheriaRuntimeDaemonFrameDocument> _reactiveFrame", StringComparison.Ordinal) ||
|
||||
daemonObserver.Contains("CultMeshReactiveDocument<AetheriaRuntimeDaemonSoaViewDocument> _reactiveSoaView", StringComparison.Ordinal) ||
|
||||
daemonObserver.Contains("CultMeshReactiveDocument<AetheriaRuntimeZoneRenderDocument> _reactiveZoneRender", StringComparison.Ordinal) ||
|
||||
daemonObserver.Contains("state.ReactiveDaemonFrame()", StringComparison.Ordinal) ||
|
||||
daemonObserver.Contains("state.ReactiveDaemonSoaView()", StringComparison.Ordinal) ||
|
||||
daemonObserver.Contains("state.ReactiveZoneRender()", StringComparison.Ordinal) ||
|
||||
daemonObserver.Contains("AetheriaRuntimeObservedDaemonSession", StringComparison.Ordinal) ||
|
||||
daemonObserver.Contains(".ObserveDaemon()", StringComparison.Ordinal) ||
|
||||
daemonObserver.Contains("return new AetheriaRuntimeObservedDaemonState(frame, soaView, zoneRender);", StringComparison.Ordinal) ||
|
||||
daemonObserver.Contains("DisposeReactiveObservedDaemonDocuments()", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"AetheriaDaemonObserver still owns raw observed daemon document plumbing instead of the managed observed-daemon session.");
|
||||
"AetheriaDaemonObserver still routes through observed-daemon compatibility wrappers instead of direct reactive documents.");
|
||||
}
|
||||
|
||||
if (daemonObserver.Contains("ObserveAsync()", StringComparison.Ordinal))
|
||||
|
|
|
|||
Loading…
Reference in a new issue