Skip to main content

Module qos_parser

Module qos_parser 

Source
Expand description

Parser for the DDS-XML 1.0 §7.3.2 QoS profile library.

Consumes raw XML, builds the foundation tree (see crate::parser::parse_xml_tree) and maps it onto the typed data model from crate::qos.

§Spec-conformant boolean semantics

The foundation parse_bool from crate::types deliberately accepts TRUE/FALSE spellings for Cyclone/FastDDS compatibility. DDS-XML 1.0 §7.1.4, by contrast, requires strict true/false. Here we use the local parse_bool_strict helper, which only allows the spec values.

§Single-QoS shortcut (§7.3.2.4.1)

A <qos_profile> with only one <datawriter_qos> (or one of the other 6 entity containers) is treated like a fully specified profile — the direct container tag replaces the container-for-multiple-policies style. Other entity containers in the same profile are additionally accepted; that is a superset of the spec example in §7.3.2.4.1.

Functions§

parse_bool_strict
DDS-XML 1.0 §7.1.4 requires strict true/false (case-sensitive).
parse_entity_qos_public
Crate-internal pub wrapper for [parse_entity_qos], so that other building-block modules (domain, participant) can decode inline QoS containers without duplicating the parser.
parse_qos_libraries
Parses the top-level <dds> document and returns all contained QoS libraries (Spec §7.3.2.3 allows multiple libraries per document).
parse_qos_library
Convenience: parses the document and returns the first QoS library. Returns MissingRequiredElement("qos_library") if none is present.
parse_qos_library_element_public
Crate-internal pub wrapper for [parse_qos_library_element], so that the top-level loader (crate::zerodds_xml::parse_dds_xml) can decode a <qos_library> element sub-tree directly without duplicating the parser.