umbrello  2.31.3
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  pluginloader.h
3  -------------------
4  begin : Mon Jan 13 2003
5  copyright : (C) 2003 by Andrew Sutton
6  email : ansutton@kent.edu
7  Bugs and comments to umbrello-devel@kde.org or https://bugs.kde.org
8 ***************************************************************************/
9 
10 /***************************************************************************
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * *
17  ***************************************************************************/
18 
19 #ifndef UMBRELLO_PLUGINLOADER_H
20 #define UMBRELLO_PLUGINLOADER_H
21 
22 // Qt includes
23 #include <Q3ValueList>
24 #include <QMap>
25 
26 // forward declarations
27 class QString;
28 
29 namespace Umbrello
30 {
31 // forward declarations
32 class Plugin;
33 
66 class PluginLoader : public QObject
67 {
68  Q_OBJECT
69 public:
70 
72  ~PluginLoader();
73 
74 
76  typedef Q3ValueList<Plugin *> PluginList;
77 
79  typedef QMap<QString, Plugin *> PluginMap;
80 
82  typedef QMap<QString, PluginList> CategoryMap;
83 
85  static PluginLoader *instance();
86 
91  Plugin *loadPlugin(const QString &name);
92 
94  Plugin *findPlugin(const QString &name);
95 
102  void unloadPlugin(const QString &name);
103 
109  const PluginMap &plugins() const;
110 
112  const CategoryMap &categories() const;
113 
114 private slots:
120  void slotDestroyed(QObject *obj);
121 
122 private:
124  PluginLoader();
125 
127  PluginMap _plugins;
128  CategoryMap _categories;
129 };
130 }
131 
132 #endif
~PluginLoader()
Definition: pluginloader.cpp:44
Definition: pluginloader.h:66
QMap< QString, Plugin * > PluginMap
Definition: pluginloader.h:79
Plugin * findPlugin(const QString &name)
Definition: pluginloader.cpp:128
static PluginLoader * instance()
Definition: pluginloader.cpp:49
QMap< QString, PluginList > CategoryMap
Definition: pluginloader.h:82
CategoryMap _categories
Categories of plugins.
Definition: pluginloader.h:128
void slotDestroyed(QObject *obj)
Definition: pluginloader.cpp:155
Q3ValueList< Plugin * > PluginList
Definition: pluginloader.h:76
PluginLoader()
Definition: pluginloader.cpp:34
const PluginMap & plugins() const
Definition: pluginloader.cpp:143
Definition: plugin.h:87
static PluginLoader * _instance
Singleton instance.
Definition: pluginloader.h:126
Plugin * loadPlugin(const QString &name)
Definition: pluginloader.cpp:56
Definition: configurable.h:35
const CategoryMap & categories() const
Definition: pluginloader.cpp:149
PluginMap _plugins
The plugin mapping.
Definition: pluginloader.h:127
void unloadPlugin(const QString &name)
Definition: pluginloader.cpp:137