umbrello  2.38.5
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
pluginloader.h
Go to the documentation of this file.
1 /*
2  SPDX-FileCopyrightText: 2003 Andrew Sutton <ansutton@kent.edu>
3  SPDX-License-Identifier: GPL-2.0-or-later
4 */
5 
6 #ifndef UMBRELLO_PLUGINLOADER_H
7 #define UMBRELLO_PLUGINLOADER_H
8 
9 // Qt includes
10 #include <Q3ValueList>
11 #include <QMap>
12 
13 // forward declarations
14 class QString;
15 
16 namespace Umbrello
17 {
18 // forward declarations
19 class Plugin;
20 
53 class PluginLoader : public QObject
54 {
55  Q_OBJECT
56 public:
57 
59  ~PluginLoader();
60 
61 
63  typedef Q3ValueList<Plugin *> PluginList;
64 
66  typedef QMap<QString, Plugin *> PluginMap;
67 
69  typedef QMap<QString, PluginList> CategoryMap;
70 
72  static PluginLoader *instance();
73 
78  Plugin *loadPlugin(const QString &name);
79 
81  Plugin *findPlugin(const QString &name);
82 
89  void unloadPlugin(const QString &name);
90 
96  const PluginMap &plugins() const;
97 
99  const CategoryMap &categories() const;
100 
101 private slots:
107  void slotDestroyed(QObject *obj);
108 
109 private:
111  PluginLoader();
112 
114  PluginMap _plugins;
115  CategoryMap _categories;
116 };
117 }
118 
119 #endif
~PluginLoader()
Definition: pluginloader.cpp:34
Definition: pluginloader.h:53
QMap< QString, Plugin * > PluginMap
Definition: pluginloader.h:66
Plugin * findPlugin(const QString &name)
Definition: pluginloader.cpp:118
static PluginLoader * instance()
Definition: pluginloader.cpp:39
QMap< QString, PluginList > CategoryMap
Definition: pluginloader.h:69
const CategoryMap & categories() const
Definition: pluginloader.cpp:139
CategoryMap _categories
Categories of plugins.
Definition: pluginloader.h:115
void slotDestroyed(QObject *obj)
Definition: pluginloader.cpp:145
Q3ValueList< Plugin * > PluginList
Definition: pluginloader.h:63
PluginLoader()
Definition: pluginloader.cpp:24
Definition: plugin.h:74
static PluginLoader * _instance
Singleton instance.
Definition: pluginloader.h:113
const PluginMap & plugins() const
Definition: pluginloader.cpp:133
Plugin * loadPlugin(const QString &name)
Definition: pluginloader.cpp:46
Definition: configurable.h:23
PluginMap _plugins
The plugin mapping.
Definition: pluginloader.h:114
void unloadPlugin(const QString &name)
Definition: pluginloader.cpp:127