Skip to main content

Module reliable_reader

Module reliable_reader 

Source
Expand description

Reliable RTPS-Reader (1:N Writer-Proxies) — DDSI-RTPS 2.5 §8.4.10.

Entspricht der StatefulReader-Rolle mit 1..N matched Writers. Fragmentation (§8.4.14) ist unterstuetzt. Multi-Writer ab WP 1.4 T4.5: pro Remote-Writer getrennter WriterProxyState mit eigenem received_cache, delivered_up_to und FragmentAssembler.

§Warum pro-Proxy State?

SequenceNumbers sind writer-lokal (Spec §8.3.5.4). Zwei Writer mit ueberlappenden SN-Spaces wuerden in einem globalen Cache kollidieren — daher separate Puffer pro Proxy.

§API-Form

  let mut r = ReliableReader::new(...);
  r.add_writer_proxy(proxy_for_remote_A);
  loop {
      match transport.recv_submessage() {
          Data(d)      => for s in r.handle_data(&d) { deliver(s) },
          DataFrag(df) => for s in r.handle_data_frag(&df, uptime()) { deliver(s) },
          Heartbeat(h) => r.handle_heartbeat(&h, uptime()),
          Gap(g)       => for s in r.handle_gap(&g) { deliver(s) },
      }
      for dg in r.tick(uptime())? { transport.send(dg) }
  }

Structs§

DeliveredSample
Ein an die Applikation ausgelieferter Sample.
ReliableReader
Ein Reliable-Reader mit 0..N Writer-Proxies.
ReliableReaderConfig
Konfiguration beim Anlegen.
WriterProxyState
Pro-Writer State: der Proxy + getrennter Empfangs-State.

Constants§

DEFAULT_HEARTBEAT_RESPONSE_DELAY
Default-Heartbeat-Response-Delay.