Skip to main content

Module qos_parser

Module qos_parser 

Source
Expand description

Parser fuer DDS-XML 1.0 §7.3.2 QoS-Profile-Library.

Konsumiert Roh-XML, baut den Foundation-Tree (siehe crate::parser::parse_xml_tree) auf und mappt ihn auf das typed Datenmodell aus crate::qos.

§Spec-konforme Boolean-Semantik

Der Foundation-parse_bool aus crate::types akzeptiert bewusst TRUE/FALSE-Schreibweisen aus Cyclone/FastDDS-Kompatibilitaet. DDS-XML 1.0 §7.1.4 verlangt dagegen strict true/false. Wir verwenden hier den lokalen parse_bool_strict Helper, der nur die Spec-Werte zulaesst.

§Single-QoS-Shortcut (§7.3.2.4.1)

Ein <qos_profile> mit nur einem <datawriter_qos> (oder einem anderen 6 Entity-Containern) wird wie eine voll-spezifizierte Profile behandelt — der direkte Container-Tag ersetzt den Container-fuer- mehrere-Policies-Stil. Andere Entity-Container in derselben Profile werden zusaetzlich akzeptiert; das ist ein Superset des Spec- Examples in §7.3.2.4.1.

Functions§

parse_bool_strict
DDS-XML 1.0 §7.1.4 verlangt strict true/false (case-sensitive).
parse_entity_qos_public
Crate-internal pub-Wrapper fuer [parse_entity_qos], damit andere Building-Block-Module (Domain, Participant) inline-QoS-Container dekodieren koennen ohne den Parser zu duplizieren.
parse_qos_libraries
Parsed das oberste <dds>-Dokument und gibt alle enthaltenen QoS-Libraries zurueck (Spec §7.3.2.3 erlaubt mehrere Libraries pro Dokument).
parse_qos_library
Convenience: parsed das Dokument und gibt die erste QoS-Library zurueck. Liefert MissingRequiredElement("qos_library") wenn keine vorhanden.
parse_qos_library_element_public
Crate-internal pub-Wrapper fuer [parse_qos_library_element], damit der Top-Level-Loader (crate::zerodds_xml::parse_dds_xml) eine <qos_library>-Element-Sub-Tree direkt dekodieren kann ohne den Parser zu duplizieren.