SpikeStream Application Library  0.2
PluginManager.h
Go to the documentation of this file.
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
 All Classes Files Functions Variables Typedefs Friends Defines