Skip to main content

Module status

Module status 

Source
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§

DataAvailableStatus
DATA_AVAILABLE_STATUS — Spec §2.2.4.1.
DataOnReadersStatus
DATA_ON_READERS_STATUS — Spec §2.2.4.1.
InconsistentTopicStatus
INCONSISTENT_TOPIC_STATUS — Spec §2.2.4.1 Tab. 2.10 + §2.2.2.3.2.
LivelinessChangedStatus
LIVELINESS_CHANGED_STATUS — Spec §2.2.4.1 + §2.2.2.5.6.
LivelinessLostStatus
LIVELINESS_LOST_STATUS — Spec §2.2.4.1 + §2.2.2.4.2.
OfferedDeadlineMissedStatus
OFFERED_DEADLINE_MISSED_STATUS — Spec §2.2.4.1 + §2.2.2.4.2.
OfferedIncompatibleQosStatus
OFFERED_INCOMPATIBLE_QOS_STATUS — Spec §2.2.4.1 + §2.2.2.4.2.
PublicationMatchedStatus
PUBLICATION_MATCHED_STATUS — Spec §2.2.4.1 + §2.2.2.4.2.
QosPolicyCount
QosPolicyCount — Sub-Element von *IncompatibleQosStatus.
RequestedDeadlineMissedStatus
REQUESTED_DEADLINE_MISSED_STATUS — Spec §2.2.4.1 + §2.2.2.5.6.
RequestedIncompatibleQosStatus
REQUESTED_INCOMPATIBLE_QOS_STATUS — Spec §2.2.4.1 + §2.2.2.5.6.
SampleLostStatus
SAMPLE_LOST_STATUS — Spec §2.2.4.1 + §2.2.2.5.6.
SampleRejectedStatus
SAMPLE_REJECTED_STATUS — Spec §2.2.4.1 + §2.2.2.5.6.
SubscriptionMatchedStatus
SUBSCRIPTION_MATCHED_STATUS — Spec §2.2.4.1 + §2.2.2.5.6.

Enums§

SampleRejectedStatusKind
SampleRejectedStatusKind — Reason warum der letzte Sample rejected wurde. Spec §2.2.4.1 Tab. 2.10 (kind enum unter SAMPLE_REJECTED).

Functions§

bump_policy_count
Hängt einen policy_id-Counter in einen policies-Vec ein. Wenn der Eintrag existiert, wird count inkrementiert; sonst neu angefügt. Genutzt vom Runtime-Layer beim Verteilen eines IncompatibleQos-Events.