Skip to main content

Module runtime

Module runtime 

Source
Expand description

DcpsRuntime — Event-Loop + UDP-Sockets pro DomainParticipant.

§Aufbau

  • Bindet 3 UDP-Sockets pro Participant:
    • SPDP-Multicast-Receiver (domain-basierter Port).
    • SPDP-Unicast-Fallback (ephemeral, fuer bidirektionale SPDP).
    • User-Unicast (ephemeral, wohin matched peers senden).
  • Spawnt einen einzelnen Event-Loop-Thread, der periodisch:
    • SPDP-Beacon sendet (alle 5 s Default),
    • alle Sockets non-blocking pollt,
    • SPDP-Datagrams in den DiscoveredParticipantsCache wandert,
    • SEDP-Datagrams (Pub/Sub-Announces) dispatched,
    • User-Daten an die richtigen DataReader-Slots ausliefert,
    • WLP-/Liveliness-Tick fuehrt,
    • TypeLookup-Service-Endpoints (XTypes 1.3 §7.6.3.3.4) bedient.
  • Thread-Lifecycle per Arc<AtomicBool> stop_flag + JoinHandle im Drop.

Mit aktivem security-Feature laufen alle Outbound-/Inbound- Bytes durch das SharedSecurityGate (DDS-Security 1.2). Das Multi-Interface-Binding (RuntimeConfig::interface_bindings) erlaubt Per-Subnet-Routing fuer Production-Topologien.

Structs§

DcpsRuntime
Die Runtime eines DomainParticipants. Hosts alle Background- Threads und UDP-Sockets.
RuntimeConfig
Konfiguration fuer die Runtime. Exposed via DomainParticipant- Factory-Methoden.
UserReaderConfig
QoS-Config fuer die Registrierung eines User-Readers.
UserWriterConfig
Hilfsstruktur zum Announcen einer lokalen Publication/Subscription als SEDP-BuiltinTopicData. Caller erzeugt sie einmal pro Writer/Reader-Registration und reicht sie an SedpStack weiter. QoS-Config fuer die Registrierung eines User-Writers bei der Runtime. Bundelt alle Policies die auf Wire ueber SEDP gehen plus das lokale Monitoring. Vermeidet 10+-Argument-Funktionen.

Enums§

UserSample
Sample-Channel-Item: entweder Daten-Payload oder Lifecycle-Marker. Lifecycle wird vom Wire-Pfad als key_hash + ChangeKind aus dem PID_STATUS_INFO-Header rekonstruiert; der DataReader-DCPS-Layer uebersetzt das in __push_lifecycle.

Constants§

DEFAULT_SPDP_PERIOD
Default-SPDP-Announce-Periode (Spec §8.5.3.2 empfiehlt 5 s).
DEFAULT_TICK_PERIOD
Default-Tick-Periode des Event-Loops.
USER_PAYLOAD_ENCAP
RTPS-Serialized-Payload-Header fuer User-Samples: XCDR2-LittleEndian

Functions§

user_multicast_endpoint
Default-User-Multicast-Locator fuer einen DomainParticipant. Live-Mode1 noch nicht genutzt; wird in B2 SPDP-announced.

Type Aliases§

UserReaderListener
User-Reader-Slot. ReliableReader + Topic-Meta + Channel zum DataReader (DCPS-API-Seite). Listener-Callback fuer Sample-Arrival.
UserSampleWithEncap
Listener-Dispatch traegt parallel zur UserSample eine Zero-Copy-Sicht auf das Original-Arc<[u8]> mit Encap-Offset (Hebel-E Zero-Copy-Pfad).