template<class Interface>
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
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::
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.