pub struct ReliableStatelessWriter { /* private fields */ }Expand description
ReliableStatelessWriter — Spec §8.4.8.2.
Implementations§
Source§impl ReliableStatelessWriter
impl ReliableStatelessWriter
Sourcepub fn new(
prefix: GuidPrefix,
entity_id: EntityId,
vendor_id: VendorId,
history: HistoryKind,
capacity: usize,
heartbeat_period: Duration,
) -> Self
pub fn new( prefix: GuidPrefix, entity_id: EntityId, vendor_id: VendorId, history: HistoryKind, capacity: usize, heartbeat_period: Duration, ) -> Self
Konstruktor.
Sourcepub fn set_locators(&mut self, locators: Vec<Locator>)
pub fn set_locators(&mut self, locators: Vec<Locator>)
Setzt eine neue Locator-Liste (T11).
Sourcepub fn set_max_per_tick(&mut self, n: usize)
pub fn set_max_per_tick(&mut self, n: usize)
Setzt das DoS-Cap fuer Retransmits-pro-Tick.
Sourcepub fn new_change(
&mut self,
kind: ChangeKind,
payload: Vec<u8>,
) -> Result<SequenceNumber, WireError>
pub fn new_change( &mut self, kind: ChangeKind, payload: Vec<u8>, ) -> Result<SequenceNumber, WireError>
T1 — new_change: legt einen Sample im Cache an. Liefert die
vergebene Sequence-Number.
§Errors
ValueOutOfRange bei SN-Overflow oder Cache-Capacity-Limit.
Sourcepub fn handle_acknack(&mut self, ack: &AckNackSubmessage)
pub fn handle_acknack(&mut self, ack: &AckNackSubmessage)
T4/T5 — verarbeitet eine eingehende ACKNACK. Aktualisiert
lowest_unacked (max der jemals gesehenen base — once-acked-
always-acked) und nimmt requested-SNs in den Retransmit-Pool.
Sourcepub fn is_acked_to(&self, sn: SequenceNumber) -> bool
pub fn is_acked_to(&self, sn: SequenceNumber) -> bool
T7 — is_acked_to(sn): alle SNs bis einschliesslich sn sind
von mindestens einem Reader bestaetigt.
Sourcepub fn purge_acked(&mut self) -> usize
pub fn purge_acked(&mut self) -> usize
T8 — purgt alle Cache-Eintraege, die lowest_unacked - 1 oder
kleiner sind. Liefert die Anzahl entfernter Samples.
Sourcepub fn tick(
&mut self,
now: Duration,
) -> Result<Vec<OutboundDatagram>, WireError>
pub fn tick( &mut self, now: Duration, ) -> Result<Vec<OutboundDatagram>, WireError>
T2/T3/T6 — Tick. Liefert eine Liste von Datagrams, die der
Caller via UDP an alle locators senden soll. Reihenfolge:
- Pending-Retransmits (max
max_per_tick). - Wenn
now >= last_heartbeat + heartbeat_periodUND Cache nicht leer: ein HEARTBEAT.
§Errors
Wire-Encode-Fehler bei DATA/HEARTBEAT-Encoding.
Sourcepub fn stats(&self) -> ReliableStatelessStats
pub fn stats(&self) -> ReliableStatelessStats
T12 — Diagnose-Snapshot.