aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/system/plugin.h
diff options
context:
space:
mode:
authorGravatar Alexey Uzhva2007-04-16 06:31:26 +0000
committerGravatar Alexey Uzhva2007-04-16 06:31:26 +0000
commit11081edf268e40b9667310359bc245e83318ac73 (patch)
tree45883908369d34efe1f6c0ab8a0ac32b4cceb4b6 /src/modules/system/plugin.h
parentupdated Makefile.am for system module (diff)
downloadKVIrc-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.h45
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