Struct timely::progress::nested::subgraph::Subgraph
[−]
[src]
pub struct Subgraph<TOuter: Timestamp, TInner: Timestamp> { pub path: Vec<usize>, pub index: usize, // some fields omitted }
A dataflow subgraph.
The subgraph type contains the infrastructure required to describe the topology of and track progress within a dataflow subgraph.
Fields
path: Vec<usize>
A sequence of integers uniquely identifying the subgraph.
index: usize
The index assigned to the subgraph by its parent.
Methods
impl<TOuter: Timestamp, TInner: Timestamp> Subgraph<TOuter, TInner>[src]
fn new_input(
&mut self,
shared_counts: Rc<RefCell<CountMap<Product<TOuter, TInner>>>>
) -> usize
&mut self,
shared_counts: Rc<RefCell<CountMap<Product<TOuter, TInner>>>>
) -> usize
Allocates a new input to the subgraph and returns the assigned index.
fn new_output(&mut self) -> usize
Allocates a new output from the subgraph and returns the assigned index.
fn connect(&mut self, source: Source, target: Target)
Introduces a dependence from the source to the target.
This method does not effect data movement, but rather reveals to the progress tracking infrastructure
that messages produced by source should be expected to be consumed at target.
fn new_from<A: Allocate>(
allocator: &mut A,
index: usize,
path: Vec<usize>
) -> Subgraph<TOuter, TInner>
allocator: &mut A,
index: usize,
path: Vec<usize>
) -> Subgraph<TOuter, TInner>
Creates a new Subgraph from a channel allocator and "descriptive" indices.
fn allocate_child_id(&mut self) -> usize
Allocates a new child identifier, for later use.
fn add_child(
&mut self,
child: Box<Operate<Product<TOuter, TInner>>>,
index: usize,
identifier: usize
)
&mut self,
child: Box<Operate<Product<TOuter, TInner>>>,
index: usize,
identifier: usize
)
Adds a new child to the subgraph.
Trait Implementations
impl<TOuter: Timestamp, TInner: Timestamp> Operate<TOuter> for Subgraph<TOuter, TInner>[src]
fn name(&self) -> String
A descripitive name for the operator
fn local(&self) -> bool
Indicates if the operator is strictly local to this worker. Read more
fn inputs(&self) -> usize
The number of inputs.
fn outputs(&self) -> usize
The number of outputs.
fn get_internal_summary(
&mut self
) -> (Vec<Vec<Antichain<TOuter::Summary>>>, Vec<CountMap<TOuter>>)
&mut self
) -> (Vec<Vec<Antichain<TOuter::Summary>>>, Vec<CountMap<TOuter>>)
Fetches summary information about internal structure of the operator. Read more
fn set_external_summary(
&mut self,
summaries: Vec<Vec<Antichain<TOuter::Summary>>>,
frontier: &mut [CountMap<TOuter>]
)
&mut self,
summaries: Vec<Vec<Antichain<TOuter::Summary>>>,
frontier: &mut [CountMap<TOuter>]
)
Presents summary information about the external structure around the operator. Read more
fn push_external_progress(&mut self, external: &mut [CountMap<TOuter>])
Reports a summary of progress statements external to the operator and its peer group. Read more
fn pull_internal_progress(
&mut self,
consumed: &mut [CountMap<TOuter>],
internal: &mut [CountMap<TOuter>],
produced: &mut [CountMap<TOuter>]
) -> bool
&mut self,
consumed: &mut [CountMap<TOuter>],
internal: &mut [CountMap<TOuter>],
produced: &mut [CountMap<TOuter>]
) -> bool
Retrieves a summary of progress statements internal to the operator. Read more
fn notify_me(&self) -> bool
Indicates of whether the operator requires push_external_progress information or not.