Struct timely::progress::reachability::Tracker[][src]

pub struct Tracker<T: Timestamp> { /* fields omitted */ }

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]

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>]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[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

impl<T> Send for Tracker<T> where
    <T as Timestamp>::Summary: Send

impl<T> Sync for Tracker<T> where
    <T as Timestamp>::Summary: Sync

impl<T> Unpin for Tracker<T> where
    T: Unpin,
    <T as Timestamp>::Summary: Unpin

impl<T> UnwindSafe for Tracker<T> where
    T: UnwindSafe,
    <T as Timestamp>::Summary: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.