Class WorkflowManager

Class Documentation

class WorkflowManager

Public Functions

void addWorkflow(ApplicationHandler &source_state, const std::set<std::string> &injection_names, const std::set<std::string> &sequence_segment_names, const std::set<std::string> &sample_group_names, const std::vector<ApplicationHandler::Command> &commands, const int number_of_threads, IApplicationProcessorObserver *application_processor_observer = nullptr, ISequenceProcessorObserver *sequence_processor_observer = nullptr, ISequenceSegmentProcessorObserver *sequence_segment_processor_observer = nullptr, ISampleGroupProcessorObserver *sample_group_processor_observer = nullptr, bool blocking = false)

Copies the passed application_handler and sets up the async run of the workflow. Only one workflow is managed at a time

Parameters
  • The[inout] application_handler that gets copied and then updated at the end of the workflow run

  • injection_names[in] Injection names to use for Sequence Processing

  • sequence_segment_names[in] Sequence Segment Names to use for Sequence Segment Processing

  • sample_group_names[in] Sample Group Names to use for Sample Group Processing

  • commands[in] Workflow steps

  • number_of_threads[in] number of threads to use to execute the workflow

  • sequence_processor_observer[in] an observer for sequence, used to report progress

  • sequence_segment_processor_observer[in] an observer for sequence segment, used to report progress

  • sample_group_processor_observer, used[in] to report progress

  • blocking[in] If true the operation runs synchronously, otherwise runs asynchronously and returns immediately

bool isWorkflowDone() const

If this returns false, new workflows can’t run and the following menu items are disabled in the UI:

  • File -> Load session from sequence

  • Edit -> Workflow

  • Action -> Run command

  • Action -> Run workflow

void updateApplicationHandler(ApplicationHandler &source_app_handler)

Update the application handler with the resulting application handler must be called from the main thread.

std::set<std::string> getFilenameRequirements(const std::vector<ApplicationHandler::Command> &commands) const

Returns the list of requirements to run the workflow.

bool isMissingRequirements(const Filenames &filenames, const std::set<std::string> &requirements) const

return true if the Filenames contains all the requirements to run the commands