1 #ifndef PLUGINMANAGER_H 2 #define PLUGINMANAGER_H 4 #include "helper/singleton.h" 38 QStringList
const& pluginPath();
44 void setPluginPath(
const QStringList &directory);
50 QString
const& lastError();
56 QList<PluginMetaData*> pluginMetaDataList();
65 appendPluginComponentHelper(Derived::staticMetaObject, Base::staticMetaObject);
76 QVectorIterator<QObject*> it(createInstancesHelper(T::staticMetaObject));
78 while (it.hasNext()) {
79 T* obj = (T*)qobject_cast<T*>(it.next());
82 qWarning() <<
"Create Instances, cast failed";
98 QObject* obj = createInstanceHelper(className);
99 T* ret = (T*)qobject_cast<T*>(obj);
101 if (ret ==
nullptr) {
102 qWarning() <<
"Create instance, cast failed for type: " << className;
118 QVector<QObject*> createInstancesHelper(QMetaObject interfaceObject);
119 void appendPluginComponentHelper(QMetaObject derivedMeta, QMetaObject baseMeta);
120 QObject* createInstanceHelper(QString className);
123 Q_DECLARE_PRIVATE(PluginManager)
127 #endif // PLUGINMANAGER_H The PluginManager class.
Definition: plugin_manager.h:14
virtual bool postInit()=0
postInit will be called after all components and singletons have been constructed/initialized ...
void addPluginComponent()
addPluginComponent adds a plugin component to internal list from where it can be instantiated later ...
Definition: plugin_manager.h:63
The AbstractSingleton class defines functions that every singleton must implement Every Singleton mus...
Definition: singleton.h:12
T * createInstance(QString const &className)
createInstance creates a single instance of a class from a given className
Definition: plugin_manager.h:96
virtual bool preDestroy()=0
preDestroy will be called before any of the components and singletons will be destructed/deinitailize...
The Singleton Template figures as baseclass for all Singletons. It provides a instance() functions wh...
Definition: singleton.h:54
Definition: plugin_manager_p.h:12
QVector< T * > createInstances()
createInstances creates all instances of a plugin and returns them in a vector
Definition: plugin_manager.h:73