00001 /*************************************************************************** 00002 qgspluginregistry.h 00003 Singleton class for keeping track of installed plugins. 00004 ------------------- 00005 begin : Mon Jan 26 2004 00006 copyright : (C) 2004 by Gary E.Sherman 00007 email : sherman at mrcc.com 00008 ***************************************************************************/ 00009 00010 /*************************************************************************** 00011 * * 00012 * This program is free software; you can redistribute it and/or modify * 00013 * it under the terms of the GNU General Public License as published by * 00014 * the Free Software Foundation; either version 2 of the License, or * 00015 * (at your option) any later version. * 00016 * * 00017 ***************************************************************************/ 00018 /* $Id: qgspluginregistry.h 6415 2007-01-09 02:39:15Z wonder $ */ 00019 00020 #ifndef QGSPLUGINREGISTRY_H 00021 #define QGSPLUGINREGISTRY_H 00022 #include <map> 00023 #include "qgspluginmetadata.h" 00024 class QgsPluginMetadata; 00025 class QgisPlugin; 00026 class QString; 00032 class QgsPluginRegistry 00033 { 00034 public: 00036 static QgsPluginRegistry* instance(); 00038 QString library(QString pluginKey); 00040 QgsPluginMetadata * pluginMetadata(QString name); 00042 QgisPlugin * plugin(QString name); 00044 bool isPythonPlugin(QString name); 00046 void addPlugin(QString _library, QString _name, QgisPlugin * _plugin); 00048 void addPythonPlugin(QString packageName, QString pluginName); 00050 void removePlugin(QString name); 00051 protected: 00053 QgsPluginRegistry(); 00054 private: 00055 static QgsPluginRegistry* _instance; 00056 std::map<QString,QgsPluginMetadata*> plugins; 00057 }; 00058 #endif //QgsPluginRegistry_H 00059