Struct timely::dataflow::scopes::root::Root
[−]
[src]
pub struct Root<A: Allocate> { /* fields omitted */ }
A Root
is the entry point to a timely dataflow computation. It wraps a Allocate
,
and has a list of child Operate
s.
Methods
impl<A: Allocate> Root<A>
[src]
fn new(c: A) -> Root<A>
[src]
Allocates a new Root
bound to a channel allocator.
fn step(&mut self) -> bool
[src]
Performs one step of the computation.
A step gives each dataflow operator a chance to run, and is the main way to ensure that a computation procedes.
fn step_while<F: FnMut() -> bool>(&mut self, func: F)
[src]
Calls self.step()
as long as func
evaluates to true.
fn index(&self) -> usize
[src]
The index of the worker out of its peers.
fn peers(&self) -> usize
[src]
The total number of peer workers.
fn dataflow<T: Timestamp, R, F: FnOnce(&mut Child<Self, T>) -> R>(
&mut self,
func: F
) -> R
[src]
&mut self,
func: F
) -> R
Construct a new dataflow.
fn dataflow_using<T: Timestamp, R, F: FnOnce(&mut V, &mut Child<Self, T>) -> R, V: Any + 'static>(
&mut self,
resources: V,
func: F
) -> R
[src]
&mut self,
resources: V,
func: F
) -> R
Construct a new dataflow binding resources that are released only after the dataflow is dropped.
This method is designed to allow the dataflow builder to use certain resources that are then stashed with the dataflow until it has completed running. Once complete, the resources are dropped. The most common use of this method at present is with loading shared libraries, where the library is important for building the dataflow, and must be kept around until after the dataflow has completed operation.
Trait Implementations
impl<A: Allocate> ScopeParent for Root<A>
[src]
type Timestamp = RootTimestamp
The timestamp associated with data in this scope.
fn new_identifier(&mut self) -> usize
[src]
Allocates a new locally unique identifier.
impl<A: Allocate> Allocate for Root<A>
[src]
fn index(&self) -> usize
[src]
The index of the worker out of (0..self.peers())
.
fn peers(&self) -> usize
[src]
The number of workers.
fn allocate<D: Data>(&mut self) -> (Vec<Box<Push<D>>>, Box<Pull<D>>)
[src]
Constructs several send endpoints and one receive endpoint.