Skip to main content

Crate zerodds_qos

Crate zerodds_qos 

Source
Expand description

Crate zerodds-qos. Safety classification: SAFE.

DDS QoS-Policies (DDS 1.4 §2.2.3) + Request/Offered-Compatibility-Matrix

  • PL_CDR_LE PID-Wire-Codec (DDSI-RTPS §9.6.3.2). Pure-Rust no_std + alloc.

§Spec

  • DDS 1.4 §2.2.3 — all 22 standard policies (Durability, Reliability, Liveliness, Ownership, Partition, …) incl. §2.2.3.23 exclusive-ownership resolver logic (§2.2.2.5.5).
  • DDS 1.4 §2.2.3 Table “QoS compatibility” — request/offered matrix (check_compatibility).
  • DDSI-RTPS 2.5 §9.6.3.2 — wire PIDs for ParameterList encoding (Pid).

§Layer position

Layer 1 — primitives. Direct dependents: zerodds-rtps, zerodds-discovery, zerodds-dcps, zerodds-dcps-async, zerodds-c-api, zerodds-rpc, zerodds-security-runtime, zerodds-xml, zerodds-zenoh-bridge.

§Public API (as of 1.0.0-rc.1)

Top level:

Policies module (policies):

Exclusive-Ownership-Resolver (exclusive_ownership):

§Example

use zerodds_qos::{
    ReliabilityKind, ReliabilityQosPolicy, ReaderQos, WriterQos,
    check_compatibility, CompatibilityResult,
};

let mut writer_qos = WriterQos::default();
writer_qos.reliability = ReliabilityQosPolicy { kind: ReliabilityKind::Reliable, ..Default::default() };
let reader_qos = ReaderQos::default();
// Reliable writer + BestEffort reader (default) are compatible.
assert!(matches!(check_compatibility(&writer_qos, &reader_qos), CompatibilityResult::Compatible));

Re-exports§

pub use compatibility::CompatibilityResult;
pub use compatibility::IncompatibleReason;
pub use duration::Duration;
pub use pid::Pid;
pub use policies::DeadlineQosPolicy;
pub use policies::DestinationOrderKind;
pub use policies::DestinationOrderQosPolicy;
pub use policies::DurabilityKind;
pub use policies::DurabilityQosPolicy;
pub use policies::DurabilityServiceQosPolicy;
pub use policies::EntityFactoryQosPolicy;
pub use policies::GroupDataQosPolicy;
pub use policies::HistoryKind;
pub use policies::HistoryQosPolicy;
pub use policies::LatencyBudgetQosPolicy;
pub use policies::LifespanQosPolicy;
pub use policies::LivelinessKind;
pub use policies::LivelinessQosPolicy;
pub use policies::OwnershipKind;
pub use policies::OwnershipQosPolicy;
pub use policies::OwnershipStrengthQosPolicy;
pub use policies::PartitionQosPolicy;
pub use policies::PresentationAccessScope;
pub use policies::PresentationQosPolicy;
pub use policies::PropertyQosPolicy;
pub use policies::ReaderDataLifecycleQosPolicy;
pub use policies::ReaderQos;
pub use policies::ReliabilityKind;
pub use policies::ReliabilityQosPolicy;
pub use policies::ResourceLimitsQosPolicy;
pub use policies::TimeBasedFilterQosPolicy;
pub use policies::TopicDataQosPolicy;
pub use policies::TransportPriorityQosPolicy;
pub use policies::UserDataQosPolicy;
pub use policies::WriterDataLifecycleQosPolicy;
pub use policies::WriterQos;
pub use policies::check_compatibility;

Modules§

compatibility
Request/offered QoS compatibility (DDS 1.4 §2.2.3).
duration
DDS Duration_t (DDSI-RTPS §9.3.2) — i32 seconds + u32 fraction.
exclusive_ownership
Exclusive ownership resolution (DDS 1.4 §2.2.3.23 / §2.2.2.5.5).
pid
PID constants for QoS policies (DDSI-RTPS §9.6.3.2).
policies
DDS QoS-Policies (DDS 1.4 §2.2.3).