pub struct QoSSystemDefaults {
pub reliability: QoSReliabilityPolicy,
pub durability: QoSDurabilityPolicy,
pub history: QoSHistoryPolicy,
pub depth: u32,
}Expand description
What ONE backend resolves the SYSTEM_DEFAULT sentinel to.
issue 0829. rmw_qos_profile_system_default is an absence, and the RMW
fills it — which means the answer is per backend and there is no constant
this crate could bake. Each backend declares its own QoSSystemDefaults
and applies it with QoSProfile::resolve_system_default at its create
entry, before anything is derived from the QoS.
That ordering is load-bearing on the zenoh path: the profile is serialised
into the liveliness-token keyexpr that a ROS rmw_zenoh_cpp peer parses
out of the graph (nros-rmw-zenoh/src/keyexpr.rs). Upstream resolves in
best_available_qos before the entity and its token exist, so its tokens
never carry a sentinel; ours must not either, or we advertise 0:0:0,0 to
peers as though it were a policy.
The values a backend picks should mirror the corresponding upstream
RMW, not the raw middleware default — interop with a ROS peer is the
requirement, and the two differ. Leaving dds_qset_reliability unset gives
Cyclone’s own reader default of BEST_EFFORT (ddsi_plist.c:3470), where
rmw_cyclonedds_cpp deliberately picks RELIABLE.
Fields§
§reliability: QoSReliabilityPolicyConcrete reliability. Must not itself be SystemDefault.
durability: QoSDurabilityPolicyConcrete durability. Must not itself be SystemDefault.
history: QoSHistoryPolicyConcrete history. Must not itself be SystemDefault.
depth: u32Concrete queue depth. 0 means the backend genuinely has no answer and
defers further down the stack — the XRCE case, where the client encodes
exactly that (optional_history_depth = false) and the Agent’s DDS
layer resolves it.
Trait Implementations§
Source§impl Clone for QoSSystemDefaults
impl Clone for QoSSystemDefaults
Source§fn clone(&self) -> QoSSystemDefaults
fn clone(&self) -> QoSSystemDefaults
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for QoSSystemDefaults
Source§impl Debug for QoSSystemDefaults
impl Debug for QoSSystemDefaults
impl Eq for QoSSystemDefaults
Source§impl PartialEq for QoSSystemDefaults
impl PartialEq for QoSSystemDefaults
Source§fn eq(&self, other: &QoSSystemDefaults) -> bool
fn eq(&self, other: &QoSSystemDefaults) -> bool
self and other values to be equal, and is used by ==.