Browse Source

Trade: allow instantiating importer plugins with access to manager.

pull/68/head
Vladimír Vondruš 12 years ago
parent
commit
a201f32aab
  1. 5
      src/Magnum/Trade/AbstractImporter.cpp
  2. 7
      src/Magnum/Trade/AbstractImporter.h

5
src/Magnum/Trade/AbstractImporter.cpp

@ -25,6 +25,7 @@
#include "AbstractImporter.h"
#include <Corrade/PluginManager/Manager.h>
#include <Corrade/Containers/Array.h>
#include <Corrade/Utility/Assert.h>
#include <Corrade/Utility/Directory.h>
@ -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<AbstractImporter>& manager): AbstractManagingPlugin{manager} {}
AbstractImporter::AbstractImporter(PluginManager::AbstractManager& manager, std::string plugin): AbstractManagingPlugin(manager, std::move(plugin)) {}
bool AbstractImporter::openData(Containers::ArrayReference<const unsigned char> data) {
CORRADE_ASSERT(features() & Feature::OpenData,

7
src/Magnum/Trade/AbstractImporter.h

@ -31,7 +31,7 @@
#include <memory>
#include <Corrade/Containers/EnumSet.h>
#include <Corrade/PluginManager/AbstractPlugin.h>
#include <Corrade/PluginManager/AbstractManagingPlugin.h>
#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<AbstractImporter> {
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<AbstractImporter>& manager);
/** @brief Plugin manager constructor */
explicit AbstractImporter(PluginManager::AbstractManager& manager, std::string plugin);

Loading…
Cancel
Save