SpikeStream Application Library
0.2
|
00001 #ifndef PLUGINMANAGER_H 00002 #define PLUGINMANAGER_H 00003 00004 //SpikeStream includes 00005 #include "SpikeStreamException.h" 00006 00007 //Qt includes 00008 #include <QWidget> 00009 #include <QString> 00010 #include <QStringList> 00011 #include <QHash> 00012 00014 typedef QWidget* (*CreatePluginFunctionType)(); 00015 00017 typedef QString (*GetPluginNameFunctionType)(); 00018 00019 namespace spikestream { 00020 00022 class PluginManager { 00023 public: 00024 PluginManager(QString& pluginFolder) throw(SpikeStreamException); 00025 ~PluginManager(); 00026 QStringList getPluginNames() throw(SpikeStreamException); 00027 QWidget* getPlugin(QString pluginName) throw(SpikeStreamException); 00028 void loadPlugins(); 00029 00030 00031 private: 00032 //============================== VARIABLES ============================ 00034 QString pluginFolder; 00035 00037 QHash<QString, CreatePluginFunctionType> pluginFunctionMap; 00038 00039 00040 //=============================== METHODS ============================= 00041 }; 00042 00043 } 00044 00045 #endif // PLUGINMANAGER_H