MingaEditor.Renderer.Server (Minga v0.1.0)

Copy Markdown View Source

Renderer process wrapper.

All frame, acknowledgement, timeout, and recovery workflows live in focused handler modules. This module exposes the process API and keeps OTP callbacks as routing-only clauses.

Summary

Functions

Returns current recovery generation and acknowledged frame sequence.

Queues the latest semantic frame submission for asynchronous rendering.

Returns a specification to start this module under a supervisor.

Routes a typed frontend frame status to the renderer.

Records one-shot adaptation evidence without changing the retained source presentation.

Runs one frame synchronously inside this renderer process.

Returns true while rendering or awaiting frontend credit.

Requests recovery only when the failed generation and committed base still match.

Abandons the old frontend connection and renders a fresh keyframe.

Renders a same-connection keyframe while retaining presentation leases.

Renders a synchronous same-connection keyframe while retaining presentation leases.

Resets frontend state and renders a synchronous recovery keyframe.

Returns the visible terminal frontend failure, if one has stopped frame credit.

Returns the immutable interaction-index reader for this renderer generation.

Applies one ordered frontend text-presentation lifecycle event.

Types

Functions

acknowledgement_state(server \\ __MODULE__)

@spec acknowledgement_state(GenServer.server()) ::
  {non_neg_integer(), non_neg_integer()}

Returns current recovery generation and acknowledged frame sequence.

cast_snapshot(server \\ __MODULE__, submission, frame_seq)

Queues the latest semantic frame submission for asynchronous rendering.

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

frame_status(server \\ __MODULE__, status)

Routes a typed frontend frame status to the renderer.

record_adaptation(server \\ __MODULE__, generation, frame_seq, dimension, rejected_value, adapted_value, adapted_submission)

Records one-shot adaptation evidence without changing the retained source presentation.

render_sync(server, submission, frame_seq)

Runs one frame synchronously inside this renderer process.

rendering?(server \\ __MODULE__)

@spec rendering?(GenServer.server()) :: boolean()

Returns true while rendering or awaiting frontend credit.

request_recovery(server \\ __MODULE__, failed_generation, last_applied_frame_seq)

Requests recovery only when the failed generation and committed base still match.

reset_connection(server \\ __MODULE__, submission, frame_seq)

@spec reset_connection(
  GenServer.server(),
  MingaEditor.Renderer.Submission.t(),
  non_neg_integer()
) ::
  :ok

Abandons the old frontend connection and renders a fresh keyframe.

reset_keyframe(server \\ __MODULE__, submission, frame_seq)

@spec reset_keyframe(
  GenServer.server(),
  MingaEditor.Renderer.Submission.t(),
  non_neg_integer()
) :: :ok

Renders a same-connection keyframe while retaining presentation leases.

reset_keyframe_sync(server, submission, frame_seq)

Renders a synchronous same-connection keyframe while retaining presentation leases.

reset_sync(server, submission, frame_seq)

Resets frontend state and renders a synchronous recovery keyframe.

start_link(opts \\ [])

@spec start_link(keyword()) :: GenServer.on_start()

terminal_failure(server \\ __MODULE__)

@spec terminal_failure(GenServer.server()) ::
  MingaEditor.Renderer.RejectionState.terminal() | nil

Returns the visible terminal frontend failure, if one has stopped frame credit.

text_interaction_reader(server \\ __MODULE__)

Returns the immutable interaction-index reader for this renderer generation.

text_presentation_state(server \\ __MODULE__, window_id, presentation_id, lifecycle)

@spec text_presentation_state(
  GenServer.server(),
  MingaEditor.Window.id(),
  non_neg_integer(),
  :active | :discarded
) :: :ok | {:error, :unknown}

Applies one ordered frontend text-presentation lifecycle event.