diff options
| author | 2007-04-16 06:31:26 +0000 | |
|---|---|---|
| committer | 2007-04-16 06:31:26 +0000 | |
| commit | 11081edf268e40b9667310359bc245e83318ac73 (patch) | |
| tree | 45883908369d34efe1f6c0ab8a0ac32b4cceb4b6 /src/modules/system/plugin.h | |
| parent | updated Makefile.am for system module (diff) | |
| download | KVIrc-11081edf268e40b9667310359bc245e83318ac73.tar.gz KVIrc-11081edf268e40b9667310359bc245e83318ac73.tar.bz2 KVIrc-11081edf268e40b9667310359bc245e83318ac73.zip | |
some cosmetic fixes and better internal api
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@492 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/system/plugin.h')
| -rw-r--r-- | src/modules/system/plugin.h | 45 |
1 files changed, 24 insertions, 21 deletions
diff --git a/src/modules/system/plugin.h b/src/modules/system/plugin.h index f2b532313..c931a59c5 100644 --- a/src/modules/system/plugin.h +++ b/src/modules/system/plugin.h @@ -25,7 +25,7 @@ //============================================================================= #include "kvi_module.h" -#include "kvi_asciidict.h" +#include "kvi_dict.h" #define MAX_RETURN_BUFFER 512 @@ -35,21 +35,24 @@ typedef int (*plugin_load)(); class KviPlugin { - public: - KviPlugin(); - ~KviPlugin(); - private: - // shared - // internal - QString m_szName; - kvi_library_t m_Plugin; - public: - bool load(QString& pszPluginName); - bool unload(bool forced); - int call(QString& pszFunctionName, int argc, char * argv[], char ** pBuffer); - KviStr name(); - void setName(QString& Name); - protected: +protected: + // You have to create plugin instance by calling KviPlugin::load() + KviPlugin(kvi_library_t pLib, const QString& name); +public: + ~KviPlugin(); +private: + // shared + // internal + kvi_library_t m_Plugin; + QString m_szName; +public: + static KviPlugin* load(const QString& szFileName); + + bool unload(bool forced); + int call(const QString& szFunctionName, int argc, char * argv[], char ** pBuffer); + QString name(); + void setName(const QString& szName); +protected: }; class KviPluginManager @@ -61,16 +64,16 @@ class KviPluginManager // shared bool m_bCanUnload; // internal - KviAsciiDict<KviPlugin> * m_pPluginDict; + KviDict<KviPlugin> * m_pPluginDict; public: bool pluginCall(KviKvsModuleFunctionCall *c); bool checkUnload(); void unloadAll(bool forced); protected: - bool findPlugin(QString& pName, QString& pSingleName); - bool pluginIsLoaded(QString& pSingleName); - bool loadPlugin(QString& pName, QString& pSingleName); - KviPlugin * getPlugin(QString& pSingleName); + bool findPlugin(QString& szName); + bool isPluginLoaded(const QString& szFileNameOrPathToLoad); + bool loadPlugin(const QString& szPluginPath); + KviPlugin * getPlugin(const QString& szPluginPath); }; #endif //_PLUGIN_H_
\ No newline at end of file |
