Expand description
Status-event surface (Phase 108).
Tier-1 events that backends optionally surface — liveliness
changes, deadline misses, message loss. Dispatched via
callback-on-entity (registration on Subscription / Publisher),
not via upstream’s waitset-take pattern.
Events fire from inside Session::drive_io
on the executor thread, the same as message callbacks. (Phase 105 counted
both against a per-spin cap, ; the executor has
no such cap now.)max_callbacks_per_spin
See book/src/communicate/qos-status-events.md for the user-facing
patterns and book/src/extending/rmw-vs-upstream.md Section 8 for
the design rationale.
§Matched and incompatible-type (issue 1972)
Iron/Jazzy’s *_MATCHED and *_INCOMPATIBLE_TYPE kinds are appended
after the Tier-1 set (EventKind::PublicationMatched onward), with
payloads MatchedStatus and IncompatibleTypeStatus. Upstream’s
QOS_INCOMPATIBLE is still surfaced synchronously at create time as
TransportError::IncompatibleQos (NROS_RMW_RET_INCOMPATIBLE_QOS at the
C boundary); no runtime event for it.
Structs§
- Count
Status - Deadline / message-lost payload. Used for
RequestedDeadlineMissed,LivelinessLost,OfferedDeadlineMissed,MessageLost— same shape. - Incompatible
Type Counter - Turns successive snapshots of an incompatible-type count into
IncompatibleTypeStatusreports. Same bound asMatchedCounter: only increases between polls are counted. - Incompatible
Type Status - Incompatible-type payload — upstream
rmw_incompatible_type_status_t(Iron+), issue 1972.u32where upstream hasint32_t: both only grow. - Liveliness
Changed Status - Liveliness-status payload. Mirrors DDS
rmw_liveliness_changed_status_tshape. - Matched
Counter - Turns successive SNAPSHOTS of a matched count into
MatchedStatusreports — issue 1972.no_std, no allocation, eight bytes. - Matched
Status - Matched payload — upstream
rmw_matched_status_t(Iron+), issue 1972.
Enums§
- Event
Kind - Status-event kinds.
#[non_exhaustive]so adding a variant later is not a break for matchers. Discriminants equal the Crmw_event_type_tvalues, which only ever grow at the end. - Event
Payload - Borrow-shaped event payload union. Variant selection mirrors
EventKind.
Functions§
- payload_
from_ ⚠raw - Helper: convert a raw
(kind, payload_ptr)pair into a typedEventPayloadborrow. Used insideEventCallbacktrampolines.
Type Aliases§
- Deadline
Missed Status - Type alias: the deadline-missed shape is identical to
CountStatus. - Event
Callback - Raw event callback. Identical Rust + C ABI; no_std + alloc-free.
- Message
Lost Status - Type alias: the message-lost shape is identical to
CountStatus.