13#include "MantidAPI/DllConfig.h"
15#include <Poco/NotificationCenter.h>
46 std::shared_ptr<Algorithm> createUnmanaged(
const std::string &algName,
const int &version = -1)
const;
48 std::size_t size()
const;
53 std::vector<IAlgorithm_const_sptr> runningInstances()
const;
54 std::vector<IAlgorithm_const_sptr> runningInstancesOf(
const std::string &algorithmName)
const;
78 size_t removeFinishedAlgorithms();
The AlgorithmManagerImpl class is responsible for controlling algorithm instances.
Poco::NotificationCenter notificationCenter
Sends notifications to observers.
std::mutex m_managedMutex
Mutex for modifying/accessing the m_managed_algs member.
AlgorithmManagerImpl & operator=(const AlgorithmManagerImpl &)
Unimplemented assignment operator.
~AlgorithmManagerImpl()
Private destructor Prevents client from calling 'delete' on the pointer handed out by Instance.
std::deque< IAlgorithm_sptr > m_managed_algs
The list of managed algorithms.
AlgorithmManagerImpl(const AlgorithmManagerImpl &)
Unimplemented copy constructor.
Class for when an algorithm is starting asynchronously.
AlgorithmStartingNotification(IAlgorithm_sptr alg)
IAlgorithm_sptr getAlgorithm() const
Returns the algorithm that is starting.
IAlgorithm_sptr m_alg
Algorithm.
Manage the lifetime of a class intended to be a singleton.
std::shared_ptr< IAlgorithm > IAlgorithm_sptr
shared pointer to Mantid::API::IAlgorithm
void * AlgorithmID
As we have multiple interfaces to the same logical algorithm we need a way of uniquely identifying ma...
std::unique_ptr< T > create(const P &parent, const IndexArg &indexArg, const HistArg &histArg)
This is the create() method that all the other create() methods call.
Helper class which provides the Collimation Length for SANS instruments.
Policy class controlling creation of the singleton Implementation classes should mark their default c...