Mantid
Loading...
Searching...
No Matches
LibraryWrapper.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2008 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 "MantidKernel/DllConfig.h"
12
13namespace Mantid {
14namespace Kernel {
15
23class MANTID_KERNEL_DLL LibraryWrapper {
24public:
25 // Move-only class. The internal module pointer
26 // is not safe to copy around.
27 LibraryWrapper() = default;
28 // No copy
29 LibraryWrapper(const LibraryWrapper &) = delete;
31
32 LibraryWrapper(LibraryWrapper &&src) noexcept;
33 LibraryWrapper &operator=(LibraryWrapper &&rhs) noexcept;
35
36 bool openLibrary(const std::string &filepath);
37
38private:
42 void *m_module = nullptr;
43};
44
45} // namespace Kernel
46} // namespace Mantid
const std::vector< double > & rhs
Class for wrapping a shared library.
LibraryWrapper(const LibraryWrapper &)=delete
LibraryWrapper & operator=(const LibraryWrapper &)=delete
Helper class which provides the Collimation Length for SANS instruments.