Add a ModHandle typedef instead of using void* directly

This makes it clearer what this variable is and it makes porting to windows
easier, because we can just change the typedef to HMODULE.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1344 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
psychon
2009-01-24 09:11:50 +00:00
parent 7ab0b8d959
commit 620c72a2ac
2 changed files with 21 additions and 19 deletions
+8 -8
View File
@@ -189,7 +189,7 @@ void CSocket::SetModule(CModule* p) { m_pModule = p; }
CModule* CSocket::GetModule() const { return m_pModule; }
/////////////////// !Socket ///////////////////
CModule::CModule(void* pDLL, CUser* pUser, const CString& sModName, const CString& sDataDir) {
CModule::CModule(ModHandle pDLL, CUser* pUser, const CString& sModName, const CString& sDataDir) {
m_bFake = false;
m_bGlobal = false;
m_pDLL = pDLL;
@@ -205,7 +205,7 @@ CModule::CModule(void* pDLL, CUser* pUser, const CString& sModName, const CStrin
}
}
CModule::CModule(void* pDLL, const CString& sModName, const CString& sDataDir) {
CModule::CModule(ModHandle pDLL, const CString& sModName, const CString& sDataDir) {
m_bFake = false;
m_pDLL = pDLL;
m_pManager = &(CZNC::Get().GetManager());
@@ -519,7 +519,7 @@ CModule::EModRet CModule::OnChanNotice(CNick& Nick, CChan& Channel, CString& sMe
CModule::EModRet CModule::OnTopic(CNick& Nick, CChan& Channel, CString& sTopic) { return CONTINUE; }
CModule::EModRet CModule::OnTimerAutoJoin(CChan& Channel) { return CONTINUE; }
void* CModule::GetDLL() { return m_pDLL; }
ModHandle CModule::GetDLL() { return m_pDLL; }
bool CModule::PutIRC(const CString& sLine) {
return (m_pUser) ? m_pUser->PutIRC(sLine) : false;
}
@@ -726,7 +726,7 @@ bool CModules::LoadModule(const CString& sModule, const CString& sArgs, CUser* p
unsigned int uDLFlags = RTLD_NOW;
uDLFlags |= (pUser) ? RTLD_LOCAL : RTLD_GLOBAL;
void* p = dlopen((sModPath).c_str(), uDLFlags);
ModHandle p = dlopen((sModPath).c_str(), uDLFlags);
if (!p) {
sRetMsg = "Unable to load module [" + sModule + "] [" + dlerror() + "]";
@@ -778,7 +778,7 @@ bool CModules::LoadModule(const CString& sModule, const CString& sArgs, CUser* p
CModule* pModule = NULL;
if (pUser) {
typedef CModule* (*fp)(void*, CUser* pUser,
typedef CModule* (*fp)(ModHandle, CUser* pUser,
const CString& sModName, const CString& sDataPath);
fp Load = (fp) dlsym(p, "Load");
@@ -790,7 +790,7 @@ bool CModules::LoadModule(const CString& sModule, const CString& sArgs, CUser* p
pModule = Load(p, pUser, sModule, sDataPath);
} else {
typedef CModule* (*fp)(void*, const CString& sModName,
typedef CModule* (*fp)(ModHandle, const CString& sModName,
const CString& sDataPath);
fp Load = (fp) dlsym(p, "Load");
@@ -866,7 +866,7 @@ bool CModules::UnloadModule(const CString& sModule, CString& sRetMsg) {
return false;
}
void* p = pModule->GetDLL();
ModHandle p = pModule->GetDLL();
if (p) {
typedef void (*fp)(CModule*);
@@ -929,7 +929,7 @@ bool CModules::GetModInfo(CModInfo& ModInfo, const CString& sModule) {
unsigned int uDLFlags = RTLD_LAZY | RTLD_LOCAL;
void* p = dlopen((sModPath).c_str(), uDLFlags);
ModHandle p = dlopen((sModPath).c_str(), uDLFlags);
if (!p) {
return false;
+13 -11
View File
@@ -36,19 +36,21 @@ class CClient;
#endif
#endif
typedef void* ModHandle;
#define MODCONSTRUCTOR(CLASS) \
CLASS(void *pDLL, CUser* pUser, const CString& sModName, \
CLASS(ModHandle pDLL, CUser* pUser, const CString& sModName, \
const CString& sModPath) \
: CModule(pDLL, pUser, sModName, sModPath)
#define MODULEDEFS(CLASS, DESCRIPTION) \
extern "C" { \
CString GetDescription() { return DESCRIPTION; } \
bool IsGlobal() { return false; } \
CModule* Load(void* p, CUser* pUser, const CString& sModName, \
CModule* Load(ModHandle p, CUser* pUser, const CString& sModName, \
const CString& sModPath); \
void Unload(CModule* pMod); double GetVersion(); } \
double GetVersion() { return VERSION; } \
CModule* Load(void* p, CUser* pUser, const CString& sModName, \
CModule* Load(ModHandle p, CUser* pUser, const CString& sModName, \
const CString& sModPath) \
{ return new CLASS(p, pUser, sModName, sModPath); } \
void Unload(CModule* pMod) { if (pMod) { delete pMod; } \
@@ -57,17 +59,17 @@ class CClient;
// Global Module Macros
#define GLOBALMODCONSTRUCTOR(CLASS) \
CLASS(void *pDLL, const CString& sModName, const CString& sModPath) \
CLASS(ModHandle pDLL, const CString& sModName, const CString& sModPath) \
: CGlobalModule(pDLL, sModName, sModPath)
#define GLOBALMODULEDEFS(CLASS, DESCRIPTION) \
extern "C" { \
CString GetDescription() { return DESCRIPTION; } \
bool IsGlobal() { return true; } \
CGlobalModule* Load(void* p, const CString& sModName, \
CGlobalModule* Load(ModHandle p, const CString& sModName, \
const CString& sModPath); \
void Unload(CGlobalModule* pMod); double GetVersion(); } \
double GetVersion() { return VERSION; } \
CGlobalModule* Load(void* p, const CString& sModName, \
CGlobalModule* Load(ModHandle p, const CString& sModName, \
const CString& sModPath) \
{ return new CLASS(p, sModName, sModPath); } \
void Unload(CGlobalModule* pMod) { if (pMod) { delete pMod; } \
@@ -203,9 +205,9 @@ protected:
class CModule {
public:
CModule(void* pDLL, CUser* pUser, const CString& sModName,
CModule(ModHandle pDLL, CUser* pUser, const CString& sModName,
const CString& sDataDir);
CModule(void* pDLL, const CString& sModName, const CString& sDataDir);
CModule(ModHandle pDLL, const CString& sModName, const CString& sDataDir);
virtual ~CModule();
typedef enum {
@@ -282,7 +284,7 @@ public:
virtual EModRet OnTopic(CNick& Nick, CChan& Channel, CString& sTopic);
virtual EModRet OnTimerAutoJoin(CChan& Channel);
void * GetDLL();
ModHandle GetDLL();
static double GetCoreVersion() { return VERSION; }
virtual bool PutIRC(const CString& sLine);
@@ -355,7 +357,7 @@ protected:
CString m_sDescription;
vector<CTimer*> m_vTimers;
vector<CSocket*> m_vSockets;
void* m_pDLL;
ModHandle m_pDLL;
CSockManager* m_pManager;
CUser* m_pUser;
CClient* m_pClient;
@@ -449,7 +451,7 @@ protected:
class CGlobalModule : public CModule {
public:
CGlobalModule(void* pDLL, const CString& sModName,
CGlobalModule(ModHandle pDLL, const CString& sModName,
const CString &sDataDir) : CModule(pDLL, sModName, sDataDir) {}
virtual ~CGlobalModule() {}