pub struct CoherentScope { /* private fields */ }Expand description
State-Machine-Tracker fuer Coherent-Set auf Publisher-Seite.
Lifecycle:
begin_coherent_changessetztactive=trueund merkt sich die naechste Sequence-Number alsset_first_sn.- Jede
write()waehrend des aktiven Sets traegt diesen Marker. end_coherent_changessetztactive=false. Das naechste write ohne Marker oder mit neuem Marker signalisiert dem Reader das Set-Ende.
Implementations§
Source§impl CoherentScope
impl CoherentScope
Sourcepub fn new() -> Arc<Self> ⓘ
pub fn new() -> Arc<Self> ⓘ
Neuer leerer Scope (in Arc, weil Caller den meist shared zwischen Publisher-Inner + write-Pfad halten muessen).
Sourcepub fn current_marker(&self) -> Option<CoherentSetMarker>
pub fn current_marker(&self) -> Option<CoherentSetMarker>
Liefert den aktuellen Marker, falls Scope aktiv ist.
Sourcepub fn begin(&self, next_sn: CoherentSequenceNumber) -> Result<()>
pub fn begin(&self, next_sn: CoherentSequenceNumber) -> Result<()>
Beginnt einen neuen Coherent-Set mit der gegebenen
next_sn als Set-First-SN. Spec: §2.2.2.4.1.8
Publisher::begin_coherent_changes.
§Errors
PreconditionNotMet wenn ein Set bereits aktiv ist
(Spec: nicht verschachtelbar aktuell).
Sourcepub fn end(&self) -> Result<CoherentSetMarker>
pub fn end(&self) -> Result<CoherentSetMarker>
Beendet den aktiven Coherent-Set. Spec: §2.2.2.4.1.9
Publisher::end_coherent_changes.
§Errors
PreconditionNotMet wenn kein Set aktiv ist.
Trait Implementations§
Source§impl Debug for CoherentScope
impl Debug for CoherentScope
Auto Trait Implementations§
impl !Freeze for CoherentScope
impl RefUnwindSafe for CoherentScope
impl Send for CoherentScope
impl Sync for CoherentScope
impl Unpin for CoherentScope
impl UnsafeUnpin for CoherentScope
impl UnwindSafe for CoherentScope
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more