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+JoinHandleimDrop.
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§
- Dcps
Runtime - Die Runtime eines
DomainParticipants. Hosts alle Background- Threads und UDP-Sockets. - Runtime
Config - Konfiguration fuer die Runtime. Exposed via DomainParticipant- Factory-Methoden.
- User
Reader Config - QoS-Config fuer die Registrierung eines User-Readers.
- User
Writer Config - 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§
- User
Sample - Sample-Channel-Item: entweder Daten-Payload oder Lifecycle-Marker.
Lifecycle wird vom Wire-Pfad als
key_hash + ChangeKindaus 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§
- User
Reader Listener - User-Reader-Slot. ReliableReader + Topic-Meta + Channel zum DataReader (DCPS-API-Seite). Listener-Callback fuer Sample-Arrival.
- User
Sample With Encap - Listener-Dispatch traegt parallel zur
UserSampleeine Zero-Copy-Sicht auf das Original-Arc<[u8]>mit Encap-Offset (Hebel-E Zero-Copy-Pfad).