Kactus2
Kactus2 reference guide
Loading...
Searching...
No Matches
PluginManager.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// File: PluginManager.h
3//-----------------------------------------------------------------------------
4// Project: Kactus 2
5// Author: Joni-Matti Maatta
6// Date: 27.6.2012
7//
8// Description:
9// Plugin manager which manages loaded plugins.
10//-----------------------------------------------------------------------------
11
12#ifndef PLUGINMANAGER_H
13#define PLUGINMANAGER_H
14
15#include <QString>
16#include <QList>
17#include <QObject>
18
19#include <KactusAPI/KactusAPIGlobal.h>
20
21class IPlugin;
22
23//-----------------------------------------------------------------------------
25//-----------------------------------------------------------------------------
26class KACTUS2_API PluginManager
27{
28public:
29
31 ~PluginManager() = default;
32
38 void addPlugin(IPlugin* plugin);
39
43 QList<IPlugin*> getActivePlugins() const;
44
48 QList<IPlugin*> getAllPlugins() const;
49
55 void setPluginPaths(QStringList const& pluginPaths);
56
64 static QList<IPlugin*> findPluginsInPaths(QStringList const& pluginPaths);
65
71 static PluginManager& getInstance();
72
73private:
74 // Disable copying.
75 PluginManager(PluginManager const& rhs);
76 PluginManager& operator=(PluginManager const& rhs);
77
79 PluginManager();
80
81 static bool isUnique(IPlugin* plugin, QList<IPlugin*> const& plugins);
82
83 //-----------------------------------------------------------------------------
84 // Data.
85 //-----------------------------------------------------------------------------
86
88 QList<IPlugin*> plugins_;
89};
90
91//-----------------------------------------------------------------------------
92
93#endif // PLUGINMANAGER_H
All plugin interfaces inherit from a common IPlugin interface which all plugins must implement....
Definition IPlugin.h:28
QList< IPlugin * > getActivePlugins() const
~PluginManager()=default
The destructor.
void addPlugin(IPlugin *plugin)
static PluginManager & getInstance()
static QList< IPlugin * > findPluginsInPaths(QStringList const &pluginPaths)
void setPluginPaths(QStringList const &pluginPaths)
QList< IPlugin * > getAllPlugins() const