pub struct SedpStack { /* private fields */ }Expand description
SEDP-Stack fuer einen Participant.
Implementations§
Source§impl SedpStack
impl SedpStack
Sourcepub fn new(local_prefix: GuidPrefix, vendor_id: VendorId) -> Self
pub fn new(local_prefix: GuidPrefix, vendor_id: VendorId) -> Self
Erzeugt einen neuen Stack fuer den lokalen Participant. Alle
Endpoints sind initial ohne Remote-Proxies — die werden ueber
on_participant_discovered
verdrahtet.
Sourcepub fn local_prefix(&self) -> GuidPrefix
pub fn local_prefix(&self) -> GuidPrefix
Lokaler GuidPrefix dieses Stacks.
Sourcepub fn cache(&self) -> &DiscoveredEndpointsCache
pub fn cache(&self) -> &DiscoveredEndpointsCache
Read-only-Zugriff auf den DiscoveredEndpointsCache.
Sourcepub fn cache_mut(&mut self) -> &mut DiscoveredEndpointsCache
pub fn cache_mut(&mut self) -> &mut DiscoveredEndpointsCache
Mutable-Zugriff auf den Cache. Wird primaer fuer Tests
(Discovery-Match injizieren ohne Live-UDP) und WP 2.5
find_topic-Verifikation verwendet.
Sourcepub fn announce_publication(
&mut self,
p: &PublicationBuiltinTopicData,
) -> Result<Vec<OutboundDatagram>, WireError>
pub fn announce_publication( &mut self, p: &PublicationBuiltinTopicData, ) -> Result<Vec<OutboundDatagram>, WireError>
Kuendigt eine lokale Publication an alle bereits entdeckten Remote-SEDP-Reader an.
§Errors
Encoder-Fehler.
Sourcepub fn announce_publication_with_shm_locator(
&mut self,
p: &PublicationBuiltinTopicData,
locator_bytes: &[u8],
) -> Result<Vec<OutboundDatagram>, WireError>
pub fn announce_publication_with_shm_locator( &mut self, p: &PublicationBuiltinTopicData, locator_bytes: &[u8], ) -> Result<Vec<OutboundDatagram>, WireError>
ADR-0006: Publication mit PID_SHM_LOCATOR (Vendor-PID 0x8001).
§Errors
Encoder-Fehler oder Inject-Fehler.
Sourcepub fn announce_subscription(
&mut self,
s: &SubscriptionBuiltinTopicData,
) -> Result<Vec<OutboundDatagram>, WireError>
pub fn announce_subscription( &mut self, s: &SubscriptionBuiltinTopicData, ) -> Result<Vec<OutboundDatagram>, WireError>
Sourcepub fn on_participant_discovered(&mut self, p: &DiscoveredParticipant)
pub fn on_participant_discovered(&mut self, p: &DiscoveredParticipant)
Verdrahtet die SEDP-Endpoints fuer einen neu entdeckten
Participant. Liest p.data.builtin_endpoint_set + Unicast-
Locators und registriert die passenden Proxies.
Sourcepub fn on_participant_lost(&mut self, prefix: GuidPrefix) -> (usize, usize)
pub fn on_participant_lost(&mut self, prefix: GuidPrefix) -> (usize, usize)
Ein Participant ist verloren (SPDP-Lease-Timeout). Cascade- Cleanup: alle Proxies mit diesem Prefix raus, Cache-Eintraege loeschen. Liefert (removed_pub_proxies, removed_sub_proxies).
Sourcepub fn handle_datagram(
&mut self,
datagram: &[u8],
now: Duration,
) -> Result<SedpEvents, SedpReaderError>
pub fn handle_datagram( &mut self, datagram: &[u8], now: Duration, ) -> Result<SedpEvents, SedpReaderError>
Verarbeitet ein eingehendes RTPS-Datagramm an den SEDP-Stack. Routed die Submessages nach Ziel-EntityId an den passenden Endpoint und aktualisiert den Cache. Liefert die deltaartig neu-entdeckten Samples zurueck.
§Errors
Wire-Decode-Fehler oder fehlerhafte PL_CDR-Payloads.
Sourcepub fn tick(
&mut self,
now: Duration,
) -> Result<Vec<OutboundDatagram>, WireError>
pub fn tick( &mut self, now: Duration, ) -> Result<Vec<OutboundDatagram>, WireError>
Tick ueber alle Endpoints. Liefert HEARTBEATs + Resends von den Writern plus ACKNACK/NACK_FRAG von den Readern.
§Errors
Wire-Encode-Fehler.
Sourcepub fn pub_writer(&self) -> &SedpPublicationsWriter
pub fn pub_writer(&self) -> &SedpPublicationsWriter
Read-only-Zugriff auf die internen Endpoints (Diagnose/Tests).
Sourcepub fn pub_reader(&self) -> &SedpPublicationsReader
pub fn pub_reader(&self) -> &SedpPublicationsReader
dito.
Sourcepub fn sub_writer(&self) -> &SedpSubscriptionsWriter
pub fn sub_writer(&self) -> &SedpSubscriptionsWriter
dito.
Sourcepub fn sub_reader(&self) -> &SedpSubscriptionsReader
pub fn sub_reader(&self) -> &SedpSubscriptionsReader
dito.