Skip to main content

ReliableStatelessWriter

Struct ReliableStatelessWriter 

Source
pub struct ReliableStatelessWriter { /* private fields */ }
Expand description

ReliableStatelessWriter — Spec §8.4.8.2.

Implementations§

Source§

impl ReliableStatelessWriter

Source

pub fn new( prefix: GuidPrefix, entity_id: EntityId, vendor_id: VendorId, history: HistoryKind, capacity: usize, heartbeat_period: Duration, ) -> Self

Konstruktor.

Source

pub fn guid(&self) -> Guid

Eigene GUID.

Source

pub fn set_locators(&mut self, locators: Vec<Locator>)

Setzt eine neue Locator-Liste (T11).

Source

pub fn set_max_per_tick(&mut self, n: usize)

Setzt das DoS-Cap fuer Retransmits-pro-Tick.

Source

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.

Source

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.

Source

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.

Source

pub fn purge_acked(&mut self) -> usize

T8 — purgt alle Cache-Eintraege, die lowest_unacked - 1 oder kleiner sind. Liefert die Anzahl entfernter Samples.

Source

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:

  1. Pending-Retransmits (max max_per_tick).
  2. Wenn now >= last_heartbeat + heartbeat_period UND Cache nicht leer: ein HEARTBEAT.
§Errors

Wire-Encode-Fehler bei DATA/HEARTBEAT-Encoding.

Source

pub fn shutdown(&mut self)

T10 — Shutdown: leert den Cache + Retransmit-Pool.

Source

pub fn stats(&self) -> ReliableStatelessStats

T12 — Diagnose-Snapshot.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.