class dtkCorePluginManagerBase : public QObject { %TypeHeaderCode #include %End public: virtual ~dtkCorePluginManagerBase(); public: virtual void initialize(const QString& path) = 0; virtual void uninitialize() = 0; virtual void setVerboseLoading(bool value) = 0; virtual bool verboseLoading() const = 0; virtual void setAutoLoading(bool value) = 0; virtual bool autoLoading() const = 0; virtual void load(const QString& path) = 0; virtual void unload(const QString& path) = 0; virtual void loadFromName(const QString& plugin_name) = 0; }; template class dtkCorePluginManager : public dtkCorePluginManagerBase { %TypeHeaderCode #include %End public: dtkCorePluginManager(); ~dtkCorePluginManager(); void initialize(const QString& path); void uninitialize(); public: void setVerboseLoading(bool value); bool verboseLoading() const; void setAutoLoading(bool value); bool autoLoading() const; void loadFromName(const QString& plugin_name); void setLayerVersion(const QString& layer_version); void load(const QString& path); void unload(const QString& path); QStringList plugins() const ; QStringList availablePlugins() const; };