Struct timely::progress::reachability::Tracker [−][src]
An interactive tracker of propagated reachability information.
A Tracker
tracks, for a fixed graph topology, the implications of
pointstamp changes at various node input and output ports. These changes may
alter the potential pointstamps that could arrive at downstream input ports.
Implementations
impl<T: Timestamp> Tracker<T>
[src]
pub fn update(&mut self, location: Location, time: T, value: i64)
[src]
Updates the count for a time at a location.
pub fn update_target(&mut self, target: Target, time: T, value: i64)
[src]
Updates the count for a time at a target (operator input, scope output).
pub fn update_source(&mut self, source: Source, time: T, value: i64)
[src]
Updates the count for a time at a source (operator output, scope input).
pub fn tracking_anything(&mut self) -> bool
[src]
Indicates if any pointstamps have positive count.
pub fn allocate_from(
builder: &Builder<T>
) -> (Self, Vec<Vec<Antichain<T::Summary>>>)
[src]
builder: &Builder<T>
) -> (Self, Vec<Vec<Antichain<T::Summary>>>)
Allocate a new Tracker
using the shape from summaries
.
The result is a pair of tracker, and the summaries from each input port to each output port.
pub fn propagate_all(&mut self)
[src]
Propagates all pending updates.
The method drains self.input_changes
and circulates their implications
until we cease deriving new implications.
pub fn pushed_output(&mut self) -> &mut [ChangeBatch<T>]ⓘ
[src]
Implications of maintained capabilities projected to each output.
pub fn pushed(&mut self) -> &mut ChangeBatch<(Location, T)>
[src]
A mutable reference to the pushed results of changes.
pub fn node_state(&self, index: usize) -> &PerOperator<T>
[src]
Reveals per-operator frontier state.
pub fn is_global(&self, location: Location, time: &T) -> bool
[src]
Indicates if pointstamp is in the scope-wide frontier.
Such a pointstamp would, if removed from self.pointstamps
, cause a change
to self.implications
, which is what we track for per operator input frontiers.
If the above do not hold, then its removal either 1. shouldn’t be possible,
or 2. will not affect the output of self.implications
.
Auto Trait Implementations
impl<T> RefUnwindSafe for Tracker<T> where
T: RefUnwindSafe,
<T as Timestamp>::Summary: RefUnwindSafe,
T: RefUnwindSafe,
<T as Timestamp>::Summary: RefUnwindSafe,
impl<T> Send for Tracker<T> where
<T as Timestamp>::Summary: Send,
<T as Timestamp>::Summary: Send,
impl<T> Sync for Tracker<T> where
<T as Timestamp>::Summary: Sync,
<T as Timestamp>::Summary: Sync,
impl<T> Unpin for Tracker<T> where
T: Unpin,
<T as Timestamp>::Summary: Unpin,
T: Unpin,
<T as Timestamp>::Summary: Unpin,
impl<T> UnwindSafe for Tracker<T> where
T: UnwindSafe,
<T as Timestamp>::Summary: UnwindSafe,
T: UnwindSafe,
<T as Timestamp>::Summary: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,