Struct timely_util::Child
source · pub struct Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<<G as ScopeParent>::Timestamp>,{
pub subgraph: &'a RefCell<SubgraphBuilder<<G as ScopeParent>::Timestamp, T>>,
pub parent: G,
pub logging: Option<Logger<TimelyEvent, usize>>,
pub progress_logging: Option<Logger<TimelyProgressEvent, usize>>,
}
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 as ScopeParent>::Timestamp, T>>
The subgraph under assembly.
parent: G
A copy of the child’s parent scope.
logging: Option<Logger<TimelyEvent, usize>>
The log writer for this scope.
progress_logging: Option<Logger<TimelyProgressEvent, usize>>
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 as ScopeParent>::Timestamp>,
impl<'a, G, T> AsWorker for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<<G as ScopeParent>::Timestamp>,
source§fn allocate<D>(
&mut self,
identifier: usize,
address: &[usize]
) -> (Vec<Box<dyn Push<Message<D>> + 'static, Global>, Global>, Box<dyn Pull<Message<D>> + 'static, Global>)where
D: Data,
fn allocate<D>(
&mut self,
identifier: usize,
address: &[usize]
) -> (Vec<Box<dyn Push<Message<D>> + 'static, Global>, Global>, Box<dyn Pull<Message<D>> + 'static, Global>)where
D: Data,
Allocates a new channel from a supplied identifier and address. Read more
source§fn pipeline<D>(
&mut self,
identifier: usize,
address: &[usize]
) -> (Pusher<Message<D>, Pusher<Message<D>>>, Puller<Message<D>, Puller<Message<D>>>)where
D: 'static,
fn pipeline<D>(
&mut self,
identifier: usize,
address: &[usize]
) -> (Pusher<Message<D>, Pusher<Message<D>>>, Puller<Message<D>, Puller<Message<D>>>)where
D: 'static,
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<usize>>
fn log_register(&self) -> RefMut<'_, Registry<usize>>
Provides access to named logging streams.
source§impl<'a, G, T> Clone for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<<G as ScopeParent>::Timestamp>,
impl<'a, G, T> Clone for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<<G as ScopeParent>::Timestamp>,
source§impl<'a, G, T> LoopVariable<'a, G, T> for Child<'a, G, Product<<G as ScopeParent>::Timestamp, T>>where
G: Scope,
T: Timestamp,
impl<'a, G, T> LoopVariable<'a, G, T> for Child<'a, G, Product<<G as ScopeParent>::Timestamp, T>>where
G: Scope,
T: Timestamp,
source§impl<'a, G, T> Scheduler for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<<G as ScopeParent>::Timestamp>,
impl<'a, G, T> Scheduler for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<<G as ScopeParent>::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 as ScopeParent>::Timestamp>,
impl<'a, G, T> Scope for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<<G as ScopeParent>::Timestamp>,
source§fn addr(&self) -> Vec<usize, Global>
fn addr(&self) -> Vec<usize, Global>
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<<Child<'a, G, T> as ScopeParent>::Timestamp> + 'static, Global>,
local: usize,
global: usize
)
fn add_operator_with_indices(
&mut self,
operator: Box<dyn Operate<<Child<'a, G, T> as ScopeParent>::Timestamp> + 'static, Global>,
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<'_, Child<'a, G, T>, T2>) -> R,
fn scoped<T2, R, F>(&mut self, name: &str, func: F) -> Rwhere
T2: Timestamp + Refines<T>,
F: FnOnce(&mut Child<'_, Child<'a, G, T>, T2>) -> R,
Creates a dataflow subgraph. Read more
source§fn add_operator(
&mut self,
operator: Box<dyn Operate<Self::Timestamp> + 'static, Global>
) -> usize
fn add_operator(
&mut self,
operator: Box<dyn Operate<Self::Timestamp> + 'static, Global>
) -> 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> + 'static, Global>,
index: usize
)
fn add_operator_with_index(
&mut self,
operator: Box<dyn Operate<Self::Timestamp> + 'static, Global>,
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::Timestamp, T>>) -> R,
fn iterative<T, R, F>(&mut self, func: F) -> Rwhere
T: Timestamp,
F: FnOnce(&mut Child<'_, Self, Product<Self::Timestamp, T>>) -> R,
Creates a iterative dataflow subgraph. Read more
source§impl<'a, G, T> ScopeParent for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<<G as ScopeParent>::Timestamp>,
impl<'a, G, T> ScopeParent for Child<'a, G, T>where
G: ScopeParent,
T: Timestamp + Refines<<G as ScopeParent>::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<G, D> Concatenate<G, D> for Gwhere
G: Scope,
D: Data,
impl<G, D> Concatenate<G, D> for Gwhere
G: Scope,
D: Data,
source§fn concatenate<I>(&self, sources: I) -> Stream<G, D>where
I: IntoIterator<Item = Stream<G, D>>,
fn concatenate<I>(&self, sources: I) -> Stream<G, D>where
I: IntoIterator<Item = Stream<G, D>>,
Merge the contents of multiple streams. 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, D>, ActivateCapability<<G as ScopeParent>::Timestamp>), Stream<G, D>)where
D: Data,
fn new_unordered_input<D>(
&mut self
) -> ((UnorderedHandle<<G as ScopeParent>::Timestamp, D>, ActivateCapability<<G as ScopeParent>::Timestamp>), Stream<G, 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