Struct flowrlib::coordinator::Coordinator
source · pub struct Coordinator<'a> { /* private fields */ }
Expand description
The Coordinator
is responsible for coordinating the dispatching of jobs (consisting
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
) -> Result<Self>
pub fn new( dispatcher: Dispatcher, submitter: &'a mut dyn SubmissionHandler, debug_server: &'a mut dyn DebuggerHandler ) -> Result<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
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