/include/nnetplugin.h

00001 /* $Id: nnetplugin.h,v 1.12 2003/10/15 18:20:25 ndiin Exp $
00002  *
00003  * nnetplugin.h  NNet Plugin Handler
00004  *
00005  *    Written by Eric Andresen
00006  *
00007  * Copyright 2002-2003 Eric Andresen
00008  * See COPYING for license information
00009  */
00010 
00011 #ifndef NNETPLUGIN_H
00012 #define NNETPLUGIN_H
00013 
00014 #include <qlibrary.h>
00015 #include <qdict.h>
00016 #include <qmap.h>
00017 
00018 class QWidget;
00019 class NNet;
00020 class nvemSettings;
00021 class nvemOptionsWidget;
00022 
00026 class NNetPluginManager
00027 {
00028 public:
00032    struct moduleInfo {
00033       QString prefix; 
00034       QString name; 
00035       QString desc; 
00036    };
00037 
00041    class NNetPlugin : public QLibrary
00042    {
00043    public:
00045       NNetPlugin(const QString &modulename);
00046 
00048       virtual ~NNetPlugin();
00049 
00051       int init_module(char **prefix, char **name, char **desc, int *version);
00052 
00054       NNet* getObject(int id);
00055 
00057       nvemOptionsWidget* getOptionsWidget();
00058    };
00059 
00061    static void init();
00062 
00064    static int scanPlugins(QString dir);
00065 
00067    static NNet* getObject(const QString &modulename, int id);
00068 
00070    static nvemOptionsWidget* getOptionsWidget(const QString &modulename);
00071 
00073    static QMap<QString, NNetPluginManager::moduleInfo> getList();
00074 
00075 private:
00077    static int load_module(const QString &modulename);
00078 
00080    static QDict<NNetPlugin> n_dict;
00081 
00083    static QMap<QString, NNetPluginManager::moduleInfo> n_map;
00084 
00086    NNetPluginManager();
00087 };
00088 
00089 #endif // NNETPLUGIN_H

Generated on Wed Oct 22 20:32:04 2003 for nvemftp by doxygen1.3