Logo FSBarV1_Archived

OverlayLayerStore Module

Per-client, name-keyed overlay layer store (feature 040 US6). Phase 2 ships a skeleton — no validation, no cap enforcement — so downstream wiring can take shape. US6 task T060 adds the FR-026 cap matrix + primitive validation; US6 T061 wires the disconnect-cleanup subscription. Every mutator is keyed on the caller's `clientId`. Clients cannot read or mutate each other's layers; a client disconnect drops all of its layers atomically (wired via `wireDisconnectCleanup`).

Types

Type Description

T

Functions and values

Function or value Description

clearLayers arg1 clientId

Full Usage: clearLayers arg1 clientId

Parameters:
    arg0 : T
    clientId : Guid

Returns: int

Drop every layer owned by `clientId`; returns the number dropped.

arg0 : T
clientId : Guid
Returns: int

create events

Full Usage: create events

Parameters:
Returns: T
events : IHubEventSink
Returns: T

deleteLayer arg1 clientId layerName

Full Usage: deleteLayer arg1 clientId layerName

Parameters:
    arg0 : T
    clientId : Guid
    layerName : string

Returns: SubmitOutcome

Delete the layer called `layerName` owned by `clientId`. Idempotent: returns `Sent` even when the name isn't present.

arg0 : T
clientId : Guid
layerName : string
Returns: SubmitOutcome

listLayers arg1 clientId

Full Usage: listLayers arg1 clientId

Parameters:
    arg0 : T
    clientId : Guid

Returns: OverlayLayerDescriptor list

List every layer owned by `clientId`. Returns an empty list when the client has never put a layer (no distinction between absent and empty).

arg0 : T
clientId : Guid
Returns: OverlayLayerDescriptor list

putLayer arg1 clientId layer

Full Usage: putLayer arg1 clientId layer

Parameters:
Returns: Result<unit, PutLayerError>

Atomically create or replace a named layer owned by `clientId`. Phase 2 skeleton: every call succeeds (no validation, no caps). US6 T060 adds the validation and cap checks.

arg0 : T
clientId : Guid
layer : OverlayLayer
Returns: Result<unit, PutLayerError>

removeClient arg1 clientId

Full Usage: removeClient arg1 clientId

Parameters:
    arg0 : T
    clientId : Guid

Remove every layer owned by `clientId`. Called via `wireDisconnectCleanup`; exposed here for tests.

arg0 : T
clientId : Guid

snapshot arg1

Full Usage: snapshot arg1

Parameters:
    arg0 : T

Returns: OverlayLayerSnapshot

O(total-layers) copy of every active layer across every client, pre-sorted for the `HeadlessRenderer` composite pass.

arg0 : T
Returns: OverlayLayerSnapshot

wireDisconnectCleanup arg1 arg2

Full Usage: wireDisconnectCleanup arg1 arg2

Parameters:

Subscribe the store to `HubEvent.ScriptingClientDetached` on the supplied event source so client disconnect drops every layer they own in a single atomic store operation. Idempotent — safe to call multiple times (later calls no-op).

arg0 : T
arg1 : IObservable<HubEvent>

Type something to start searching.