Expand description
Communication-Status-Strukturen (DDS DCPS 1.4 §2.2.4.1, Tab. 2.10).
Die Spec definiert 13 Standard-Communication-Statuses, die als
Bitmask in StatusMask zusammengeführt werden. Jeder Status hat eine
zugeordnete Datenstruktur, die get_<status>() auf der jeweiligen
Entity zurückliefert. Die Bitmask-Konstanten (zur Verbindung Status ↔
Bit) leben in crate::psm_constants::status.
§Klassifikation der 13 Statuses (Spec §2.2.4.1):
-
PLAIN-Statuses (nur
total_count+total_count_change):INCONSISTENT_TOPIC(Topic)SAMPLE_LOST(DataReader)LIVELINESS_LOST(DataWriter)OFFERED_DEADLINE_MISSED(DataWriter)REQUESTED_DEADLINE_MISSED(DataReader)
-
STATEFUL-Statuses (mit
last_*+ Detail-Feldern):SAMPLE_REJECTED(DataReader)LIVELINESS_CHANGED(DataReader)PUBLICATION_MATCHED(DataWriter)SUBSCRIPTION_MATCHED(DataReader)OFFERED_INCOMPATIBLE_QOS(DataWriter)REQUESTED_INCOMPATIBLE_QOS(DataReader)
-
SIGNAL-Statuses (rein als Bit, ohne Datenstruktur — wir spiegeln sie als Marker-Structs für die Vollständigkeit der Tabelle und für eine einheitliche
get_*-API):DATA_AVAILABLE(DataReader)DATA_ON_READERS(Subscriber)
total_count_change ist als i32 getypt: die Spec sagt
“incremental count since the last time the listener was called or
the status was read”, was negativ werden kann, wenn der Reader
Liveliness wieder gewinnt (LIVELINESS_CHANGED). Wir bleiben bei
i32 für alle *_count_change-Felder, um spec-konform zu sein.
Structs§
- Data
Available Status DATA_AVAILABLE_STATUS— Spec §2.2.4.1.- Data
OnReaders Status DATA_ON_READERS_STATUS— Spec §2.2.4.1.- Inconsistent
Topic Status INCONSISTENT_TOPIC_STATUS— Spec §2.2.4.1 Tab. 2.10 + §2.2.2.3.2.- Liveliness
Changed Status LIVELINESS_CHANGED_STATUS— Spec §2.2.4.1 + §2.2.2.5.6.- Liveliness
Lost Status LIVELINESS_LOST_STATUS— Spec §2.2.4.1 + §2.2.2.4.2.- Offered
Deadline Missed Status OFFERED_DEADLINE_MISSED_STATUS— Spec §2.2.4.1 + §2.2.2.4.2.- Offered
Incompatible QosStatus OFFERED_INCOMPATIBLE_QOS_STATUS— Spec §2.2.4.1 + §2.2.2.4.2.- Publication
Matched Status PUBLICATION_MATCHED_STATUS— Spec §2.2.4.1 + §2.2.2.4.2.- QosPolicy
Count QosPolicyCount— Sub-Element von*IncompatibleQosStatus.- Requested
Deadline Missed Status REQUESTED_DEADLINE_MISSED_STATUS— Spec §2.2.4.1 + §2.2.2.5.6.- Requested
Incompatible QosStatus REQUESTED_INCOMPATIBLE_QOS_STATUS— Spec §2.2.4.1 + §2.2.2.5.6.- Sample
Lost Status SAMPLE_LOST_STATUS— Spec §2.2.4.1 + §2.2.2.5.6.- Sample
Rejected Status SAMPLE_REJECTED_STATUS— Spec §2.2.4.1 + §2.2.2.5.6.- Subscription
Matched Status SUBSCRIPTION_MATCHED_STATUS— Spec §2.2.4.1 + §2.2.2.5.6.
Enums§
- Sample
Rejected Status Kind SampleRejectedStatusKind— Reason warum der letzte Sample rejected wurde. Spec §2.2.4.1 Tab. 2.10 (kind enum unterSAMPLE_REJECTED).
Functions§
- bump_
policy_ count - Hängt einen
policy_id-Counter in einenpolicies-Vec ein. Wenn der Eintrag existiert, wirdcountinkrementiert; sonst neu angefügt. Genutzt vom Runtime-Layer beim Verteilen eines IncompatibleQos-Events.