template<typename InterfaceType>
class aspect::Plugins::ManagerBase< InterfaceType >
A base class for "plugin manager" classes. Plugin manager classes are used in places where one can legitimately use more than one plugin of a certain kind. For example, while there can only ever be one geometry (and consequently, the Simulator class only stores a single object of type derived from GeometryModels::Interface), one can have many different postprocessor objects at the same time. In these circumstances, the Simulator class stores a Postprocess::Manager object that internally stores zero or more objects of type derived from Postprocess::Interface. Since there are many places inside ASPECT where we need these "plugin
manager" classes, the current class provides some common functionality to all of these classes.
The class takes as template argument the type of the derived class's interface type. Since a manager is always also a plugin (to the Simulator class) itself, the current class is derived from the InterfaceBase
class as well.
Definition at line 213 of file plugins.h.
template<typename InterfaceType >
template<typename PluginType , typename >
Go through the list of all plugins that have been selected in the input file (and are consequently currently active) and return true if one of them has the desired type specified by the template argument.
This function can only be called if the given template type (the first template argument) is a class derived from the Interface class in this namespace.
Definition at line 371 of file plugins.h.
template<typename InterfaceType >
template<typename PluginType , typename >
Go through the list of all plugins that have been selected in the input file (and are consequently currently active) and see if one of them has the type specified by the template argument or can be cast to that type. If so, return a reference to it. If no postprocessor is active that matches the given type, throw an exception.
The returned object is necessarily an element in the list returned by get_active_plugins()
, but cast to a derived type.
This function can only be called if the given template type (the first template argument) is a class derived from the Interface class in this namespace.
Definition at line 384 of file plugins.h.