Referencia Zigmedia-daemon: señales de transporte (evt)

media-daemon/ipc/signals_publisher.zig

Declaraciones públicas de media-daemon/ipc/signals_publisher.zig (media-daemon: señales de transporte (evt)).

ImplementadoSin versión del tren todavía· generada desde apps/docs/generated/zig/media-daemon-ipc-signals.json

Página generada desde native/zig/media-daemon/ipc/signals_publisher.zig. No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere.

Transport signals of the data plane → evt.media.transportSignals on NATS (dec-0120). The daemon publishes them itself with spire-zig, signed with its identity; realtime-svc consumes them (its route admits media-daemon only). Before: an IPC broadcast to playback-svc, which re-published them — a relay with no decision in it, gone.

NATS core, not JetStream: a snapshot is an observation (latest-wins), not a fact to replay. While NATS is down the publisher drops samples and reconnects with backoff (ResilientPublisher); the data plane never waits on it.

payloadOf

fn · línea 22

pub fn payloadOf(snap: transport_signals.TransportSnapshot, ts_ms: i64) ?contracts.MediaTransportSignalsRequest

The contract payload of a sample, or null if it cannot be sent as-is (a version 0 is pre-init; a non-finite loss rate is not a measurement).

run

fn · línea 37

pub fn run( signals: *transport_signals.TransportSignalsChannel, publisher: *spire.transport.nats.ResilientPublisher, running: *const std.atomic.Value(bool), interval_ms: u64, ) void

Poller thread: every interval_ms, the newest sample (if any) goes out. Latest-wins: several publishes between two polls collapse into one.

parseNatsUrl

fn · línea 63

pub fn parseNatsUrl(url: []const u8) error{InvalidNatsUrl}!struct { host: []const u8, port: u16 }

nats://host:port (the same NATS_URL the services read). The scheme is optional; the port defaults to 4222.