ArchiveSearchFactory.h 1.59 KB
Newer Older
1
2
3
// Mantid Repository : https://github.com/mantidproject/mantid
//
// Copyright © 2010 ISIS Rutherford Appleton Laboratory UKRI,
4
5
//   NScD Oak Ridge National Laboratory, European Spallation Source,
//   Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6
// SPDX - License - Identifier: GPL - 3.0 +
7
#pragma once
8
9
10
11

//----------------------------------------------------------------------
// Includes
//----------------------------------------------------------------------
12
#include "MantidAPI/DllConfig.h"
13
14
#include "MantidKernel/DynamicFactory.h"
#include "MantidKernel/Logger.h"
LamarMoore's avatar
LamarMoore committed
15
#include "MantidKernel/SingletonHolder.h"
16

17
18
19
20
21
22
23
24
25
26
27
28
namespace Mantid {
namespace API {
class IArchiveSearch;

/**
Creates instances of IArchiveSearch

@author Roman Tolchenov, Tessella plc
@date 27/07/2010
*/
class MANTID_API_DLL ArchiveSearchFactoryImpl
    : public Kernel::DynamicFactory<IArchiveSearch> {
29
public:
30
31
32
33
  ArchiveSearchFactoryImpl(const ArchiveSearchFactoryImpl &) = delete;
  ArchiveSearchFactoryImpl &
  operator=(const ArchiveSearchFactoryImpl &) = delete;

34
35
36
37
38
private:
  friend struct Mantid::Kernel::CreateUsingNew<ArchiveSearchFactoryImpl>;

  /// Private Constructor for singleton class
  ArchiveSearchFactoryImpl();
39
40
  /// Private Destructor
  ~ArchiveSearchFactoryImpl() override = default;
41
42
};

43
44
using ArchiveSearchFactory =
    Mantid::Kernel::SingletonHolder<ArchiveSearchFactoryImpl>;
LamarMoore's avatar
LamarMoore committed
45
46
} // namespace API
} // namespace Mantid
47

48
49
namespace Mantid {
namespace Kernel {
50
51
EXTERN_MANTID_API template class MANTID_API_DLL
    Mantid::Kernel::SingletonHolder<Mantid::API::ArchiveSearchFactoryImpl>;
52
}
LamarMoore's avatar
LamarMoore committed
53
} // namespace Mantid