summaryrefslogtreecommitdiffstats
path: root/ingen/Module.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2018-01-21 00:41:34 +0100
committerDavid Robillard <d@drobilla.net>2018-01-21 00:56:50 +0100
commit001b459dfaf5d2ed53e4f7a5daea2a408aba1a2d (patch)
tree165e5620da80f2f9ad6dc0da603932973b461791 /ingen/Module.hpp
parenta99b72e4adbc4c28fadc08d29299d99405f72db9 (diff)
downloadingen-001b459dfaf5d2ed53e4f7a5daea2a408aba1a2d.tar.gz
ingen-001b459dfaf5d2ed53e4f7a5daea2a408aba1a2d.tar.bz2
ingen-001b459dfaf5d2ed53e4f7a5daea2a408aba1a2d.zip
Replace Glib::Module
Diffstat (limited to 'ingen/Module.hpp')
-rw-r--r--ingen/Module.hpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/ingen/Module.hpp b/ingen/Module.hpp
index d0065efc..df47b70b 100644
--- a/ingen/Module.hpp
+++ b/ingen/Module.hpp
@@ -17,9 +17,11 @@
#ifndef INGEN_MODULE_HPP
#define INGEN_MODULE_HPP
-#include "ingen/ingen.h"
+#include <memory>
-namespace Glib { class Module; }
+#include "ingen/FilePath.hpp"
+#include "ingen/Library.hpp"
+#include "ingen/ingen.h"
namespace Ingen {
@@ -35,6 +37,9 @@ public:
Module() : library(nullptr) {}
virtual ~Module() = default;
+ Module(const Module&) = delete;
+ Module& operator=(const Module&) = delete;
+
virtual void load(Ingen::World* world) = 0;
virtual void run(Ingen::World* world) {}
@@ -44,11 +49,7 @@ public:
* in this destructor could possibly reference code from the library
* afterwards and cause a segfault on exit.
*/
- Glib::Module* library;
-
-private:
- Module(const Module& noncopyable) = delete;
- Module& operator=(const Module& noncopyable) = delete;
+ std::unique_ptr<Library> library;
};
} // namespace Ingen