pub struct MonitorSpec {
pub topic: &'static str,
pub fqn: &'static str,
pub min_rate_hz_milli: u32,
pub max_latency_ms: u32,
pub route_trigger: &'static str,
pub route_max_latency_ms: u32,
pub route_deadline_ms: u32,
pub reaction_id: u16,
pub mechanism: u8,
pub cell: &'static PubMonitorCell,
}Expand description
One monitored publisher endpoint.
Fields§
§topic: &'static strTopic name EXACTLY as the node passes it to create_publisher
(the SystemModel’s wiring carries the same resolved name).
fqn: &'static strEndpoint ref for violation reports (<node FQN>/<endpoint> — the
SystemModel contract key).
min_rate_hz_milli: u32Declared publisher guarantee, in milli-Hz (fixed point: Hz × 1000). 0 = no rate contract on this endpoint.
max_latency_ms: u32W3b.5 — node-path budget (ms) for paths whose OUTPUT is this
endpoint (contracts.node_paths[..].max_latency_ms). 0 = no
latency contract.
route_trigger: &'static strphase10-B3 – the topic of the INPUT that triggers a node path whose
output is this endpoint (contracts.node_paths[..].input, resolved to
its wiring topic EXACTLY as the node passes it to
create_subscription), or "" for none. A subscription on this topic
registered on the same executor is the route’s trigger.
route_max_latency_ms: u32phase10-B3 – that path’s budget (ms), from the take of the trigger to
this output (route-latency-runtime). 0 = no route contract.
route_deadline_ms: u32phase-503 – the route’s SUPERVISED deadline (ms) from the take of the
trigger: a take still unanswered at take + route_deadline_ms is
reported (route-deadline-runtime) and the executor’s reaction hook is
called, without waiting for an output that may never come. 0 = the
route is not supervised (only the completion verdict above judges it).
Needs route_trigger; ignored without it.
reaction_id: u16phase-503 – the reaction the hook is asked to start when the deadline
passes: an id codegen assigns to the contract’s reaction path
(1-based; REACTION_NONE = none named). Opaque to the executor.
mechanism: u8phase-503 – which mechanism the contract chose to supervise this
route: MECHANISM_EXECUTOR (this check, in the spin loop) or
MECHANISM_TIMER (an independent timer the port arms from
Executor::route_next_due_us). The executor checks the deadline either
way and passes the mechanism to the hook.
cell: &'static PubMonitorCellThe endpoint’s counter cell.
Trait Implementations§
Source§impl Clone for MonitorSpec
impl Clone for MonitorSpec
Source§fn clone(&self) -> MonitorSpec
fn clone(&self) -> MonitorSpec
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more