Mantid
Loading...
Searching...
No Matches
ScriptRepositoryFactory.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2012 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//----------------------------------------------------------------------
10// Includes
11//----------------------------------------------------------------------
12#include "MantidAPI/DllConfig.h"
15#include <vector>
16
17namespace Mantid {
18
19namespace API {
20
21//----------------------------------------------------------------------
22// More forward declarations
23//----------------------------------------------------------------------
24class ScriptRepository;
25
39class MANTID_API_DLL ScriptRepositoryFactoryImpl : public Kernel::DynamicFactory<ScriptRepository> {
40public:
43
44private:
46
50 ~ScriptRepositoryFactoryImpl() override = default;
51};
52
54
55} // namespace API
56} // namespace Mantid
57
58namespace Mantid {
59namespace Kernel {
60EXTERN_MANTID_API template class MANTID_API_DLL
62}
63} // namespace Mantid
64
69#define DECLARE_SCRIPTREPOSITORY(classname) \
70 namespace { \
71 Mantid::Kernel::RegistrationHelper register_function_##classname( \
72 ((Mantid::API::ScriptRepositoryFactory::Instance().subscribe<classname>(#classname)), 0)); \
73 }
The ScriptRepositoryFactoryImpl class is in charge of the creation of concrete instance of ScriptRepo...
ScriptRepositoryFactoryImpl(const ScriptRepositoryFactoryImpl &)=delete
~ScriptRepositoryFactoryImpl() override=default
Private Destructor.
The dynamic factory is a base dynamic factory for serving up objects in response to requests from oth...
Manage the lifetime of a class intended to be a singleton.
Helper class which provides the Collimation Length for SANS instruments.
Policy class controlling creation of the singleton Implementation classes should mark their default c...