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§
- Delivered
Sample - Ein an die Applikation ausgelieferter Sample.
- Reliable
Reader - Ein Reliable-Reader mit 0..N Writer-Proxies.
- Reliable
Reader Config - Konfiguration beim Anlegen.
- Writer
Proxy State - Pro-Writer State: der Proxy + getrennter Empfangs-State.
Constants§
- DEFAULT_
HEARTBEAT_ RESPONSE_ DELAY - Default-Heartbeat-Response-Delay.