Table of Contents

Interface IHeatmapVisualState

Namespace
ATAS.Indicators.Heatmap
Assembly
ATAS.Indicators.dll

Persistent visual state owned by a single indicator instance and read by the renderer at frame rate. Created by the platform from the indicator's HeatmapIndicatorDescriptor and bound to the indicator via State; the same reference is valid for the entire lifetime of the runner. Resets (instrument switch, explicit RequestStateResetAsync) clear the content of every series but do NOT replace the state instance.

Mutation goes through BeginUpdate(); reads from the renderer are wait-free over the front-committed portion of every series. The detailed contract — including the front/back buffer model, the chunked append-only storage, lease exclusivity, and the version counter — is documented in docs/Heatmap/HeatmapIndicatorsDesign.md.

Added in ATAS 8.0.15.

public interface IHeatmapVisualState
Extension Methods

Properties

Descriptor

The owning descriptor — the same reference passed to the platform via Descriptor.

HeatmapIndicatorDescriptor Descriptor { get; }

Property Value

HeatmapIndicatorDescriptor

Version

Monotonic counter bumped by exactly one for every commit (System.IDisposable.Dispose() of the IHeatmapVisualStateLease) that produced at least one mutation. The renderer compares the cached version against this property per frame; a change indicates new data to upload. Read with Volatile.Read semantics — safe from any thread.

long Version { get; }

Property Value

long

Visuals

The visuals declared by the descriptor. Schema is fixed at construction time; this collection never gains or loses entries during the state's lifetime. Each visual exposes its series in the same fixed order as the descriptor declared them.

IReadOnlyList<IHeatmapVisualStateNode> Visuals { get; }

Property Value

IReadOnlyList<IHeatmapVisualStateNode>

Methods

BeginUpdate()

Acquire the exclusive write lease. Throws System.InvalidOperationException synchronously if a previous lease has not yet been disposed — there is no queueing. Authors dispose the returned lease (typically with a using statement); disposal commits the back-stage to the front and bumps Version if any mutation occurred.

IHeatmapVisualStateLease BeginUpdate()

Returns

IHeatmapVisualStateLease