Mantid
Loading...
Searching...
No Matches
FrameworkManager.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2007 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 <string>
10
11#include "MantidAPI/DllConfig.h"
14#include <memory>
15
16namespace Mantid {
17
18namespace API {
19class IAlgorithm;
20class Workspace;
21
27class MANTID_API_DLL FrameworkManagerImpl {
28public:
31
33 void loadPlugins();
34
36 void setNumOMPThreadsToConfigValue();
38 void setNumOMPThreads(const int nthreads);
40 int getNumOMPThreads() const;
41
43 void clear();
45 void shutdown();
47 void clearAlgorithms();
48
50 void clearData();
51
53 void clearInstruments();
54
56 void clearPropertyManagers();
57
59 std::shared_ptr<IAlgorithm> exec(const std::string &algorithmName, int count, ...);
60
62 Workspace *getWorkspace(const std::string &wsName);
63
65 bool deleteWorkspace(const std::string &wsName);
66
67private:
69
74
76 void loadPluginsUsingKey(const std::string &locationKey, const std::string &excludeKey);
78 void setGlobalNumericLocaleToC();
80 void asynchronousStartupTasks();
82 void setupUsageReporting();
84 void updateInstrumentDefinitions();
86 void checkIfNewerVersionIsAvailable();
87};
88
90
91} // namespace API
92} // namespace Mantid
93
94namespace Mantid {
95namespace Kernel {
96EXTERN_MANTID_API template class MANTID_API_DLL Mantid::Kernel::SingletonHolder<Mantid::API::FrameworkManagerImpl>;
97}
98} // namespace Mantid
int count
counter
Definition Matrix.cpp:37
The main public API via which users interact with the Mantid framework.
FrameworkManagerImpl(const FrameworkManagerImpl &)=delete
FrameworkManagerImpl & operator=(const FrameworkManagerImpl &)=delete
~FrameworkManagerImpl()=default
Private Destructor.
Base Workspace Abstract Class.
Definition Workspace.h:29
Manage the lifetime of a class intended to be a singleton.
Mantid::Kernel::SingletonHolder< FrameworkManagerImpl > FrameworkManager
Helper class which provides the Collimation Length for SANS instruments.
Policy class controlling creation of the singleton Implementation classes should mark their default c...