Mantid
Loading...
Searching...
No Matches
AlgorithmRunner.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2024 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7#pragma once
8
9#include "DllOption.h"
12
13#include <deque>
14#include <memory>
15
16namespace MantidQt::API {
17
18class IAlgorithmRunnerSubscriber;
19
21
22public:
23 virtual ~IAlgorithmRunner() = default;
24
25 virtual void subscribe(IAlgorithmRunnerSubscriber *subscriber) = 0;
26
27 virtual void execute(IConfiguredAlgorithm_sptr algorithm) = 0;
28 virtual void execute(std::deque<IConfiguredAlgorithm_sptr> algorithmQueue) = 0;
29};
30
32
33public:
34 AlgorithmRunner(std::unique_ptr<IJobRunner> jobRunner);
35
36 void subscribe(IAlgorithmRunnerSubscriber *subscriber) override;
37
38 void execute(IConfiguredAlgorithm_sptr algorithm) override;
39 void execute(std::deque<IConfiguredAlgorithm_sptr> algorithmQueue) override;
40
41 void notifyBatchComplete(bool error) override;
42 void notifyBatchCancelled() override;
43 void notifyAlgorithmStarted(IConfiguredAlgorithm_sptr &algorithm) override;
44 void notifyAlgorithmComplete(IConfiguredAlgorithm_sptr &algorithm) override;
45 void notifyAlgorithmError(IConfiguredAlgorithm_sptr &algorithm, std::string const &message) override;
46
47private:
48 std::unique_ptr<IJobRunner> m_jobRunner;
50
52};
53
54} // namespace MantidQt::API
#define EXPORT_OPT_MANTIDQT_COMMON
Definition DllOption.h:15
double error
IAlgorithmRunnerSubscriber * m_subscriber
IConfiguredAlgorithm_sptr m_lastAlgorithm
std::unique_ptr< IJobRunner > m_jobRunner
virtual void execute(std::deque< IConfiguredAlgorithm_sptr > algorithmQueue)=0
virtual void subscribe(IAlgorithmRunnerSubscriber *subscriber)=0
virtual ~IAlgorithmRunner()=default
virtual void execute(IConfiguredAlgorithm_sptr algorithm)=0
JobRunnerSubscriber is an interface to a class that subscribes to notifications from an IJobRunner.
Definition IJobRunner.h:24
std::shared_ptr< IConfiguredAlgorithm > IConfiguredAlgorithm_sptr