PluginManager.h
41 lines
| 968 B
| text/x-c
|
CLexer
Alexandre Leroux
|
r66 | #ifndef SCIQLOP_PLUGINMANAGER_H | ||
#define SCIQLOP_PLUGINMANAGER_H | ||||
Alexandre Leroux
|
r461 | #include "CoreGlobal.h" | ||
Alexandre Leroux
|
r66 | #include <Common/spimpl.h> | ||
#include <QLoggingCategory> | ||||
class QDir; | ||||
Q_DECLARE_LOGGING_CATEGORY(LOG_PluginManager) | ||||
/** | ||||
* @brief The PluginManager class aims to handle the plugins loaded dynamically into SciQLop. | ||||
*/ | ||||
r1331 | class PluginManager { | |||
Alexandre Leroux
|
r66 | public: | ||
explicit PluginManager(); | ||||
/** | ||||
* Loads plugins into SciQlop. The loaded plugins are those located in the directory passed in | ||||
* parameter | ||||
* @param pluginDir the directory containing the plugins | ||||
*/ | ||||
void loadPlugins(const QDir &pluginDir); | ||||
r1123 | /** | |||
* Loads static plugins into SciQlop. SciQLOP supports statically linked plugins. | ||||
*/ | ||||
void loadStaticPlugins(); | ||||
Alexandre Leroux
|
r66 | /// @returns the number of plugins loaded | ||
int nbPluginsLoaded() const noexcept; | ||||
private: | ||||
r1123 | struct PluginManagerPrivate; | |||
Alexandre Leroux
|
r66 | spimpl::unique_impl_ptr<PluginManagerPrivate> impl; | ||
}; | ||||
#endif // SCIQLOP_PLUGINMANAGER_H | ||||