template<class Interface>
Corrade::PluginManager::AbstractManagingPlugin class

Base class for plugin interfaces with access to associated manager.

Useful for plugins which needs to access the manager (e.g. for loading and using other plugins).

Base classes

class AbstractPlugin
Base class for plugin interfaces.

Constructors, destructors, conversion operators

AbstractManagingPlugin() defaulted explicit
Default constructor.
AbstractManagingPlugin(const AbstractManagingPlugin<Interface>&) deleted
Copying is not allowed.
AbstractManagingPlugin(AbstractManagingPlugin<Interface>&& other) defaulted noexcept
Move constructor.
AbstractManagingPlugin(Manager<Interface>& manager) explicit
Default constructor with access to plugin manager.
AbstractManagingPlugin(AbstractManager& manager, const Containers::StringView& plugin) explicit
Plugin manager constructor.

Public functions

auto operator=(const AbstractManagingPlugin<Interface>&) -> AbstractManagingPlugin<Interface>& deleted
Copying is not allowed.
auto operator=(AbstractManagingPlugin<Interface>&&) -> AbstractManagingPlugin<Interface>& deleted
Only move construction is allowed.

Protected functions

auto manager() -> Manager<Interface>*
Manager.
auto manager() const -> const Manager<Interface>*

Function documentation

template<class Interface>
Corrade::PluginManager::AbstractManagingPlugin<Interface>::AbstractManagingPlugin() explicit defaulted

Default constructor.

Define this constructor in your subclass only if you want to allow using the interface or plugin without any access to plugin manager.

The manager() and metadata() functions will return nullptr.

template<class Interface>
Corrade::PluginManager::AbstractManagingPlugin<Interface>::AbstractManagingPlugin(AbstractManagingPlugin<Interface>&& other) defaulted noexcept

Move constructor.

Destructive move. See AbstractPlugin::AbstractPlugin(AbstractPlugin&&) for more information.

template<class Interface>
Corrade::PluginManager::AbstractManagingPlugin<Interface>::AbstractManagingPlugin(Manager<Interface>& manager) explicit

Default constructor with access to plugin manager.

Define this constructor in your subclass only if you want to allow using the plugin directly and the plugin needs access to its plugin manager.

The metadata() function will return nullptr.

template<class Interface>
Corrade::PluginManager::AbstractManagingPlugin<Interface>::AbstractManagingPlugin(AbstractManager& manager, const Containers::StringView& plugin) explicit

Plugin manager constructor.

Used by plugin manager. Don't forget to redefine this constructor in all your subclasses.

template<class Interface>
Manager<Interface>* Corrade::PluginManager::AbstractManagingPlugin<Interface>::manager() protected

Manager.

Manager associated to given plugin. If the plugin was not instantiated with access to plugin manager, returns nullptr.

Can't be called on a moved-out instance.

template<class Interface>
const Manager<Interface>* Corrade::PluginManager::AbstractManagingPlugin<Interface>::manager() const protected

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.