From a201f32aab872c68285019cd228e5b826d245a2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Thu, 24 Jul 2014 23:28:23 +0200 Subject: [PATCH] Trade: allow instantiating importer plugins with access to manager. --- src/Magnum/Trade/AbstractImporter.cpp | 5 ++++- src/Magnum/Trade/AbstractImporter.h | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Magnum/Trade/AbstractImporter.cpp b/src/Magnum/Trade/AbstractImporter.cpp index 741988f97..10a4cfe23 100644 --- a/src/Magnum/Trade/AbstractImporter.cpp +++ b/src/Magnum/Trade/AbstractImporter.cpp @@ -25,6 +25,7 @@ #include "AbstractImporter.h" +#include #include #include #include @@ -44,7 +45,9 @@ namespace Magnum { namespace Trade { AbstractImporter::AbstractImporter() = default; -AbstractImporter::AbstractImporter(PluginManager::AbstractManager& manager, std::string plugin): AbstractPlugin(manager, std::move(plugin)) {} +AbstractImporter::AbstractImporter(PluginManager::Manager& manager): AbstractManagingPlugin{manager} {} + +AbstractImporter::AbstractImporter(PluginManager::AbstractManager& manager, std::string plugin): AbstractManagingPlugin(manager, std::move(plugin)) {} bool AbstractImporter::openData(Containers::ArrayReference data) { CORRADE_ASSERT(features() & Feature::OpenData, diff --git a/src/Magnum/Trade/AbstractImporter.h b/src/Magnum/Trade/AbstractImporter.h index 90b3b73f4..b4c99bb4a 100644 --- a/src/Magnum/Trade/AbstractImporter.h +++ b/src/Magnum/Trade/AbstractImporter.h @@ -31,7 +31,7 @@ #include #include -#include +#include #include "Magnum/Magnum.h" #include "Magnum/visibility.h" @@ -74,7 +74,7 @@ checked by the implementation: @todo How to handle casting from std::unique_ptr<> in more convenient way? */ -class MAGNUM_EXPORT AbstractImporter: public PluginManager::AbstractPlugin { +class MAGNUM_EXPORT AbstractImporter: public PluginManager::AbstractManagingPlugin { CORRADE_PLUGIN_INTERFACE("cz.mosra.magnum.Trade.AbstractImporter/0.3") public: @@ -94,6 +94,9 @@ class MAGNUM_EXPORT AbstractImporter: public PluginManager::AbstractPlugin { /** @brief Default constructor */ explicit AbstractImporter(); + /** @brief Default constructor with access to plugin manaer */ + explicit AbstractImporter(PluginManager::Manager& manager); + /** @brief Plugin manager constructor */ explicit AbstractImporter(PluginManager::AbstractManager& manager, std::string plugin);