pub struct Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<G::Timestamp>,{
pub subgraph: &'a RefCell<SubgraphBuilder<G::Timestamp, T>>,
pub parent: G,
pub logging: Option<Logger>,
pub progress_logging: Option<ProgressLogger>,
}
Expand description
A Child
wraps a Subgraph
and a parent G: Scope
. It manages the addition
of Operate
s to a subgraph, and the connection of edges between them.
Fields§
§subgraph: &'a RefCell<SubgraphBuilder<G::Timestamp, T>>
The subgraph under assembly.
parent: G
A copy of the child’s parent scope.
logging: Option<Logger>
The log writer for this scope.
progress_logging: Option<ProgressLogger>
The progress log writer for this scope.
Implementations§
Trait Implementations§
source§impl<'a, G, T> AsWorker for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<G::Timestamp>,
impl<'a, G, T> AsWorker for Child<'a, G, T>where G: ScopeParent, T: Timestamp + Refines<G::Timestamp>,
source§fn allocate<D: Data>(
&mut self,
identifier: usize,
address: &[usize]
) -> (Vec<Box<dyn Push<Message<D>>>>, Box<dyn Pull<Message<D>>>)
fn allocate<D: Data>( &mut self, identifier: usize, address: &[usize] ) -> (Vec<Box<dyn Push<Message<D>>>>, Box<dyn Pull<Message<D>>>)
Allocates a new channel from a supplied identifier and address. Read more
source§fn pipeline<D: 'static>(
&mut self,
identifier: usize,
address: &[usize]
) -> (ThreadPusher<Message<D>>, ThreadPuller<Message<D>>)
fn pipeline<D: 'static>( &mut self, identifier: usize, address: &[usize] ) -> (ThreadPusher<Message<D>>, ThreadPuller<Message<D>>)
Constructs a pipeline channel from the worker to itself. Read more
source§fn new_identifier(&mut self) -> usize
fn new_identifier(&mut self) -> usize
Allocates a new worker-unique identifier.
source§fn log_register(&self) -> RefMut<'_, Registry<WorkerIdentifier>>
fn log_register(&self) -> RefMut<'_, Registry<WorkerIdentifier>>
Provides access to named logging streams.
source§fn logging(&self) -> Option<TimelyLogger>
fn logging(&self) -> Option<TimelyLogger>
Provides access to the timely logging stream.
source§impl<'a, G, T> Clone for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<G::Timestamp>,
impl<'a, G, T> Clone for Child<'a, G, T>where G: ScopeParent, T: Timestamp + Refines<G::Timestamp>,
source§impl<'a, G, T> Scheduler for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<G::Timestamp>,
impl<'a, G, T> Scheduler for Child<'a, G, T>where G: ScopeParent, T: Timestamp + Refines<G::Timestamp>,
source§fn activations(&self) -> Rc<RefCell<Activations>>
fn activations(&self) -> Rc<RefCell<Activations>>
Provides a shared handle to the activation scheduler.
source§fn activator_for(&self, path: &[usize]) -> Activator
fn activator_for(&self, path: &[usize]) -> Activator
Constructs an
Activator
tied to the specified operator address.source§fn sync_activator_for(&self, path: &[usize]) -> SyncActivator
fn sync_activator_for(&self, path: &[usize]) -> SyncActivator
Constructs a
SyncActivator
tied to the specified operator address.source§impl<'a, G, T> Scope for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<G::Timestamp>,
impl<'a, G, T> Scope for Child<'a, G, T>where G: ScopeParent, T: Timestamp + Refines<G::Timestamp>,
source§fn addr(&self) -> Vec<usize>
fn addr(&self) -> Vec<usize>
A sequence of scope identifiers describing the path from the worker root to this scope.
source§fn add_edge(&self, source: Source, target: Target)
fn add_edge(&self, source: Source, target: Target)
Connects a source of data with a target of the data. This only links the two for
the purposes of tracking progress, rather than effect any data movement itself.
source§fn add_operator_with_indices(
&mut self,
operator: Box<dyn Operate<Self::Timestamp>>,
local: usize,
global: usize
)
fn add_operator_with_indices( &mut self, operator: Box<dyn Operate<Self::Timestamp>>, local: usize, global: usize )
Adds a child
Operate
to the builder’s scope using supplied indices. Read moresource§fn allocate_operator_index(&mut self) -> usize
fn allocate_operator_index(&mut self) -> usize
Allocates a new scope-local operator index. Read more
source§fn scoped<T2, R, F>(&mut self, name: &str, func: F) -> Rwhere
T2: Timestamp + Refines<T>,
F: FnOnce(&mut Child<'_, Self, T2>) -> R,
fn scoped<T2, R, F>(&mut self, name: &str, func: F) -> Rwhere T2: Timestamp + Refines<T>, F: FnOnce(&mut Child<'_, Self, T2>) -> R,
Creates a dataflow subgraph. Read more
source§fn add_operator(&mut self, operator: Box<dyn Operate<Self::Timestamp>>) -> usize
fn add_operator(&mut self, operator: Box<dyn Operate<Self::Timestamp>>) -> usize
Adds a child
Operate
to the builder’s scope. Returns the new child’s index.source§fn add_operator_with_index(
&mut self,
operator: Box<dyn Operate<Self::Timestamp>>,
index: usize
)
fn add_operator_with_index( &mut self, operator: Box<dyn Operate<Self::Timestamp>>, index: usize )
Adds a child
Operate
to the builder’s scope using a supplied index. Read moresource§fn iterative<T, R, F>(&mut self, func: F) -> Rwhere
T: Timestamp,
F: FnOnce(&mut Child<'_, Self, Product<<Self as ScopeParent>::Timestamp, T>>) -> R,
fn iterative<T, R, F>(&mut self, func: F) -> Rwhere T: Timestamp, F: FnOnce(&mut Child<'_, Self, Product<<Self as ScopeParent>::Timestamp, T>>) -> R,
Creates a iterative dataflow subgraph. Read more
source§fn region<R, F>(&mut self, func: F) -> Rwhere
F: FnOnce(&mut Child<'_, Self, <Self as ScopeParent>::Timestamp>) -> R,
fn region<R, F>(&mut self, func: F) -> Rwhere F: FnOnce(&mut Child<'_, Self, <Self as ScopeParent>::Timestamp>) -> R,
Creates a dataflow region with the same timestamp. Read more
source§fn region_named<R, F>(&mut self, name: &str, func: F) -> Rwhere
F: FnOnce(&mut Child<'_, Self, <Self as ScopeParent>::Timestamp>) -> R,
fn region_named<R, F>(&mut self, name: &str, func: F) -> Rwhere F: FnOnce(&mut Child<'_, Self, <Self as ScopeParent>::Timestamp>) -> R,
Creates a dataflow region with the same timestamp. Read more
source§impl<'a, G, T> ScopeParent for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<G::Timestamp>,
impl<'a, G, T> ScopeParent for Child<'a, G, T>where G: ScopeParent, T: Timestamp + Refines<G::Timestamp>,
Auto Trait Implementations§
impl<'a, G, T> !RefUnwindSafe for Child<'a, G, T>
impl<'a, G, T> !Send for Child<'a, G, T>
impl<'a, G, T> !Sync for Child<'a, G, T>
impl<'a, G, T> Unpin for Child<'a, G, T>where G: Unpin,
impl<'a, G, T> !UnwindSafe for Child<'a, G, T>
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
source§impl<G, D> Concatenate<G, D> for Gwhere
G: Scope,
D: Container,
impl<G, D> Concatenate<G, D> for Gwhere G: Scope, D: Container,
source§fn concatenate<I>(&self, sources: I) -> StreamCore<G, D>where
I: IntoIterator<Item = StreamCore<G, D>>,
fn concatenate<I>(&self, sources: I) -> StreamCore<G, D>where I: IntoIterator<Item = StreamCore<G, D>>,
Merge the contents of multiple streams. Read more
source§impl<G> Feedback<G> for Gwhere
G: Scope,
impl<G> Feedback<G> for Gwhere G: Scope,
source§fn feedback<D>(
&mut self,
summary: <<G as ScopeParent>::Timestamp as Timestamp>::Summary
) -> (HandleCore<G, Vec<D, Global>>, StreamCore<G, Vec<D, Global>>)where
D: Data,
fn feedback<D>( &mut self, summary: <<G as ScopeParent>::Timestamp as Timestamp>::Summary ) -> (HandleCore<G, Vec<D, Global>>, StreamCore<G, Vec<D, Global>>)where D: Data,
source§fn feedback_core<D>(
&mut self,
summary: <<G as ScopeParent>::Timestamp as Timestamp>::Summary
) -> (HandleCore<G, D>, StreamCore<G, D>)where
D: Container,
fn feedback_core<D>( &mut self, summary: <<G as ScopeParent>::Timestamp as Timestamp>::Summary ) -> (HandleCore<G, D>, StreamCore<G, D>)where D: Container,
source§impl<G> UnorderedInput<G> for Gwhere
G: Scope,
impl<G> UnorderedInput<G> for Gwhere G: Scope,
source§fn new_unordered_input<D>(
&mut self
) -> ((UnorderedHandleCore<<G as ScopeParent>::Timestamp, Vec<D, Global>>, ActivateCapability<<G as ScopeParent>::Timestamp>), StreamCore<G, Vec<D, Global>>)where
D: Data,
fn new_unordered_input<D>( &mut self ) -> ((UnorderedHandleCore<<G as ScopeParent>::Timestamp, Vec<D, Global>>, ActivateCapability<<G as ScopeParent>::Timestamp>), StreamCore<G, Vec<D, Global>>)where D: Data,
Create a new capability-based
Stream
and Handle
through which to supply input. This
input supports multiple open epochs (timestamps) at the same time. Read moresource§impl<G> UnorderedInputCore<G> for Gwhere
G: Scope,
impl<G> UnorderedInputCore<G> for Gwhere G: Scope,
source§fn new_unordered_input_core<D>(
&mut self
) -> ((UnorderedHandleCore<<G as ScopeParent>::Timestamp, D>, ActivateCapability<<G as ScopeParent>::Timestamp>), StreamCore<G, D>)where
D: Container,
fn new_unordered_input_core<D>( &mut self ) -> ((UnorderedHandleCore<<G as ScopeParent>::Timestamp, D>, ActivateCapability<<G as ScopeParent>::Timestamp>), StreamCore<G, D>)where D: Container,
Create a new capability-based StreamCore and UnorderedHandleCore through which to supply input. This
input supports multiple open epochs (timestamps) at the same time. Read more