pub struct Child<'a, G, T>{
pub subgraph: &'a RefCell<SubgraphBuilder<G::Timestamp, T>>,
pub parent: G,
pub logging: Option<TimelyLogger>,
pub progress_logging: Option<TimelyProgressLogger>,
}
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<TimelyLogger>
The log writer for this scope.
progress_logging: Option<TimelyProgressLogger>
The progress log writer for this scope.
Implementations§
Trait Implementations§
source§impl<'a, G, T> AsWorker for Child<'a, G, T>
impl<'a, G, T> AsWorker for Child<'a, G, T>
source§fn allocate<D: Exchangeable>(
&mut self,
identifier: usize,
address: Rc<[usize]>,
) -> (Vec<Box<dyn Push<D>>>, Box<dyn Pull<D>>)
fn allocate<D: Exchangeable>( &mut self, identifier: usize, address: Rc<[usize]>, ) -> (Vec<Box<dyn Push<D>>>, Box<dyn Pull<D>>)
Allocates a new channel from a supplied identifier and address. Read more
source§fn pipeline<D: 'static>(
&mut self,
identifier: usize,
address: Rc<[usize]>,
) -> (ThreadPusher<D>, ThreadPuller<D>)
fn pipeline<D: 'static>( &mut self, identifier: usize, address: Rc<[usize]>, ) -> (ThreadPusher<D>, ThreadPuller<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 peek_identifier(&self) -> usize
fn peek_identifier(&self) -> usize
The next worker-unique identifier to be allocated.
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> Scheduler for Child<'a, G, T>
impl<'a, G, T> Scheduler for Child<'a, G, T>
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: Rc<[usize]>) -> Activator
fn activator_for(&self, path: Rc<[usize]>) -> Activator
Constructs an
Activator
tied to the specified operator address.source§fn sync_activator_for(&self, path: Vec<usize>) -> SyncActivator
fn sync_activator_for(&self, path: Vec<usize>) -> SyncActivator
Constructs a
SyncActivator
tied to the specified operator address.source§impl<'a, G, T> Scope for Child<'a, G, T>
impl<'a, G, T> Scope for Child<'a, G, T>
source§fn addr(&self) -> Rc<[usize]>
fn addr(&self) -> Rc<[usize]>
A sequence of scope identifiers describing the path from the worker root to this scope.
source§fn addr_for_child(&self, index: usize) -> Rc<[usize]>
fn addr_for_child(&self, index: usize) -> Rc<[usize]>
A sequence of scope identifiers describing the path from the worker root to the child
indicated by
index
.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) -> R
fn scoped<T2, R, F>(&mut self, name: &str, func: F) -> 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) -> R
fn iterative<T, R, F>(&mut self, func: F) -> R
Creates a iterative dataflow subgraph. Read more
source§fn region<R, F>(&mut self, func: F) -> R
fn region<R, F>(&mut self, func: F) -> R
Creates a dataflow region with the same timestamp. Read more
source§fn region_named<R, F>(&mut self, name: &str, func: F) -> R
fn region_named<R, F>(&mut self, name: &str, func: F) -> R
Creates a dataflow region with the same timestamp. Read more
source§impl<'a, G, T> ScopeParent for Child<'a, G, T>
impl<'a, G, T> ScopeParent for Child<'a, G, T>
Auto Trait Implementations§
impl<'a, G, T> Freeze for Child<'a, G, T>where
G: Freeze,
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<G, C> Concatenate<G, C> for G
impl<G, C> Concatenate<G, C> for G
source§fn concatenate<I>(&self, sources: I) -> StreamCore<G, C>where
I: IntoIterator<Item = StreamCore<G, C>>,
fn concatenate<I>(&self, sources: I) -> StreamCore<G, C>where
I: IntoIterator<Item = StreamCore<G, C>>,
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<C>(
&mut self,
summary: <<G as ScopeParent>::Timestamp as Timestamp>::Summary,
) -> (Handle<G, C>, StreamCore<G, C>)where
C: Container,
fn feedback<C>(
&mut self,
summary: <<G as ScopeParent>::Timestamp as Timestamp>::Summary,
) -> (Handle<G, C>, StreamCore<G, C>)where
C: Container,
source§impl<G> UnorderedInput<G> for Gwhere
G: Scope,
impl<G> UnorderedInput<G> for Gwhere
G: Scope,
source§fn new_unordered_input<CB>(
&mut self,
) -> ((UnorderedHandle<<G as ScopeParent>::Timestamp, CB>, ActivateCapability<<G as ScopeParent>::Timestamp>), StreamCore<G, <CB as ContainerBuilder>::Container>)where
CB: ContainerBuilder,
fn new_unordered_input<CB>(
&mut self,
) -> ((UnorderedHandle<<G as ScopeParent>::Timestamp, CB>, ActivateCapability<<G as ScopeParent>::Timestamp>), StreamCore<G, <CB as ContainerBuilder>::Container>)where
CB: ContainerBuilder,
Create a new capability-based StreamCore and UnorderedHandle through which to supply input. This
input supports multiple open epochs (timestamps) at the same time. Read more
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,
) -> ((UnorderedHandle<<G as ScopeParent>::Timestamp, CapacityContainerBuilder<Vec<D>>>, ActivateCapability<<G as ScopeParent>::Timestamp>), StreamCore<G, Vec<D>>)where
D: Data,
fn new_unordered_input<D>(
&mut self,
) -> ((UnorderedHandle<<G as ScopeParent>::Timestamp, CapacityContainerBuilder<Vec<D>>>, ActivateCapability<<G as ScopeParent>::Timestamp>), StreamCore<G, Vec<D>>)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 more