pub struct Coordinator<'a> { /* private fields */ }Expand description
The Coordinator coordinates the dispatching of jobs for flow execution.
A Job consists of a set of Input values and an Implementation of a Function for execution, gathering the resulting Outputs and distributing output values to other connected function’s Inputs.
It accepts Flows to be executed in the form of a Submission struct that has the required
information to execute the flow.
Implementations§
Source§impl<'a> Coordinator<'a>
impl<'a> Coordinator<'a>
Sourcepub fn new(
dispatcher: Dispatcher,
submitter: &'a mut dyn SubmissionHandler,
debug_server: &'a mut dyn DebuggerHandler,
) -> Self
pub fn new( dispatcher: Dispatcher, submitter: &'a mut dyn SubmissionHandler, debug_server: &'a mut dyn DebuggerHandler, ) -> Self
Create a new coordinator with num_threads local executor threads
Sourcepub fn submission_loop(&mut self, loop_forever: bool) -> Result<()>
pub fn submission_loop(&mut self, loop_forever: bool) -> Result<()>
Enter a loop - waiting for a submission from the client, or disconnection of the client
§Errors
Returns an error if there was some issue while waiting for a submission to be sent, usually related to some networking issue, busy ports etc.
Sourcepub fn execute_flow(&mut self, submission: Submission) -> Result<()>
pub fn execute_flow(&mut self, submission: Submission) -> Result<()>
Execute a flow by looping while there are jobs to be processed in an inner loop. There is an outer loop for the case when you are using the debugger, to allow entering the debugger when the flow ends and at any point resetting all the state and starting execution again from the initial state
§Errors
Returns an error if the execution of the flow did not complete normally.
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for Coordinator<'a>
impl<'a> !Send for Coordinator<'a>
impl<'a> !Sync for Coordinator<'a>
impl<'a> !UnwindSafe for Coordinator<'a>
impl<'a> Freeze for Coordinator<'a>
impl<'a> Unpin for Coordinator<'a>
impl<'a> UnsafeUnpin for Coordinator<'a>
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more