Merge pull request #918 from jpnurmi/weffc++

Fix warnings of -Weffc++ [-Weffc++] (#270)
This commit is contained in:
Alexey Sokolov
2015-03-07 22:03:10 +00:00
14 changed files with 87 additions and 50 deletions
+26 -23
View File
@@ -49,16 +49,6 @@ class CModInfo;
#endif
#endif
typedef void* ModHandle;
template<class M> void TModInfo(CModInfo& Info) {}
template<class M> CModule* TModLoad(ModHandle p, CUser* pUser,
CIRCNetwork* pNetwork, const CString& sModName,
const CString& sModPath) {
return new M(p, pUser, pNetwork, sModName, sModPath);
}
#if HAVE_VISIBILITY
# define MODULE_EXPORT __attribute__((__visibility__("default")))
#else
@@ -97,8 +87,8 @@ template<class M> CModule* TModLoad(ModHandle p, CUser* pUser,
*/
#define MODCONSTRUCTOR(CLASS) \
CLASS(ModHandle pDLL, CUser* pUser, CIRCNetwork* pNetwork, const CString& sModName, \
const CString& sModPath) \
: CModule(pDLL, pUser, pNetwork, sModName, sModPath)
const CString& sModPath, CModInfo::EModuleType eType) \
: CModule(pDLL, pUser, pNetwork, sModName, sModPath, eType)
// User Module Macros
/** This works exactly like MODULEDEFS, but for user modules. */
@@ -209,25 +199,30 @@ protected:
};
#endif
typedef void* ModHandle;
class CModInfo {
public:
typedef CModule* (*ModLoader)(ModHandle p, CUser* pUser, CIRCNetwork* pNetwork, const CString& sModName, const CString& sModPath);
typedef enum {
GlobalModule,
UserModule,
NetworkModule
} EModuleType;
CModInfo() {
m_fLoader = nullptr;
m_bHasArgs = false;
typedef CModule* (*ModLoader)(ModHandle p, CUser* pUser, CIRCNetwork* pNetwork, const CString& sModName, const CString& sModPath, EModuleType eType);
CModInfo() : CModInfo("", "", NetworkModule) {
}
CModInfo(const CString& sName, const CString& sPath, EModuleType eType) {
m_sName = sName;
m_sPath = sPath;
m_fLoader = nullptr;
m_bHasArgs = false;
CModInfo(const CString& sName, const CString& sPath, EModuleType eType)
: m_seType(),
m_eDefaultType(eType),
m_sName(sName),
m_sPath(sPath),
m_sDescription(""),
m_sWikiPage(""),
m_sArgsHelpText(""),
m_bHasArgs(false),
m_fLoader(nullptr) {
}
~CModInfo() {}
@@ -286,6 +281,14 @@ protected:
ModLoader m_fLoader;
};
template<class M> void TModInfo(CModInfo& Info) {}
template<class M> CModule* TModLoad(ModHandle p, CUser* pUser,
CIRCNetwork* pNetwork, const CString& sModName,
const CString& sModPath, CModInfo::EModuleType eType) {
return new M(p, pUser, pNetwork, sModName, sModPath, eType);
}
/** A helper class for handling commands in modules. */
class CModCommand {
public:
@@ -356,7 +359,7 @@ private:
class CModule {
public:
CModule(ModHandle pDLL, CUser* pUser, CIRCNetwork* pNetwork, const CString& sModName,
const CString& sDataDir);
const CString& sDataDir, CModInfo::EModuleType eType = CModInfo::NetworkModule); // TODO: remove default value in ZNC 2.x
virtual ~CModule();
CModule(const CModule&) = delete;
+3
View File
@@ -31,6 +31,9 @@ public:
CQuery(const CString& sName, CIRCNetwork* pNetwork);
~CQuery();
CQuery(const CQuery&) = delete;
CQuery& operator=(const CQuery&) = delete;
// Buffer
const CBuffer& GetBuffer() const { return m_Buffer; }
unsigned int GetBufferCount() const { return m_Buffer.GetLineCount(); }
+10
View File
@@ -138,6 +138,11 @@ private:
friend class CTDNSMonitorFD;
#ifdef HAVE_THREADED_DNS
struct TDNSTask {
TDNSTask() : sHostname(""), iPort(0), sSockName(""), iTimeout(0), bSSL(false), sBindhost(""), pcSock(nullptr), bDoneTarget(false), bDoneBind(false), aiTarget(nullptr), aiBind(nullptr) {}
TDNSTask(const TDNSTask&) = delete;
TDNSTask& operator=(const TDNSTask&) = delete;
CString sHostname;
u_short iPort;
CString sSockName;
@@ -153,6 +158,11 @@ private:
};
class CDNSJob : public CJob {
public:
CDNSJob() : sHostname(""), task(nullptr), pManager(nullptr), bBind(false), iRes(0), aiResult(nullptr) {}
CDNSJob(const CDNSJob&) = delete;
CDNSJob& operator=(const CDNSJob&) = delete;
CString sHostname;
TDNSTask* task;
CSockManager* pManager;
+3
View File
@@ -222,6 +222,9 @@ public:
CBlowfish(const CString & sPassword, int iEncrypt, const CString & sIvec = "");
~CBlowfish();
CBlowfish(const CBlowfish&) = default;
CBlowfish& operator=(const CBlowfish&) = default;
//! output must be freed
static unsigned char *MD5(const unsigned char *input, u_int ilen);
+2 -2
View File
@@ -30,8 +30,8 @@ class CPerlModule : public CModule {
VWebSubPages* _GetSubPages();
public:
CPerlModule(CUser* pUser, CIRCNetwork* pNetwork, const CString& sModName, const CString& sDataPath,
SV* perlObj)
: CModule(nullptr, pUser, pNetwork, sModName, sDataPath) {
CModInfo::EModuleType eType, SV* perlObj)
: CModule(nullptr, pUser, pNetwork, sModName, sDataPath, eType) {
m_perlObj = newSVsv(perlObj);
}
SV* GetPerlObj() {
+1 -2
View File
@@ -111,7 +111,7 @@ sub LoadModule {
$modrefcount{$modname}++;
$datapath = $datapath->GetPerlStr;
$datapath =~ s/\.pm$//;
my $cmod = ZNC::CPerlModule->new($user, $network, $modname, $datapath, $pmod);
my $cmod = ZNC::CPerlModule->new($user, $network, $modname, $datapath, $type, $pmod);
my %nv;
tie %nv, 'ZNC::ModuleNV', $cmod;
$pmod->{_cmod} = $cmod;
@@ -119,7 +119,6 @@ sub LoadModule {
$cmod->SetDescription($pmod->description);
$cmod->SetArgs($args);
$cmod->SetModPath($modpath);
$cmod->SetType($type);
push @allmods, $pmod;
$container->push_back($cmod);
my $x = '';
+4 -4
View File
@@ -32,8 +32,8 @@ class CPyModule : public CModule {
VWebSubPages* _GetSubPages();
public:
CPyModule(CUser* pUser, CIRCNetwork* pNetwork, const CString& sModName, const CString& sDataPath,
PyObject* pyObj, CModPython* pModPython)
: CModule(nullptr, pUser, pNetwork, sModName, sDataPath) {
CModInfo::EModuleType eType, PyObject* pyObj, CModPython* pModPython)
: CModule(nullptr, pUser, pNetwork, sModName, sDataPath, eType) {
m_pyObj = pyObj;
Py_INCREF(pyObj);
m_pModPython = pModPython;
@@ -145,8 +145,8 @@ static inline CPyModule* AsPyModule(CModule* p) {
return dynamic_cast<CPyModule*>(p);
}
inline CPyModule* CreatePyModule(CUser* pUser, CIRCNetwork* pNetwork, const CString& sModName, const CString& sDataPath, PyObject* pyObj, CModPython* pModPython) {
return new CPyModule(pUser, pNetwork, sModName, sDataPath, pyObj, pModPython);
inline CPyModule* CreatePyModule(CUser* pUser, CIRCNetwork* pNetwork, const CString& sModName, const CString& sDataPath, CModInfo::EModuleType eType, PyObject* pyObj, CModPython* pModPython) {
return new CPyModule(pUser, pNetwork, sModName, sDataPath, eType, pyObj, pModPython);
}
class CPyTimer : public CTimer {
+1 -2
View File
@@ -538,12 +538,11 @@ def load_module(modname, args, module_type, user, network, retmsg, modpython):
return 1
module = cl()
module._cmod = CreatePyModule(user, network, modname, datapath, module, modpython)
module._cmod = CreatePyModule(user, network, modname, datapath, module_type, module, modpython)
module.nv = ModuleNV(module._cmod)
module.SetDescription(cl.description)
module.SetArgs(args)
module.SetModPath(pymodule.__file__)
module.SetType(module_type)
_py_modules.add(module)
if module_type == CModInfo.UserModule:
+6
View File
@@ -37,6 +37,9 @@ public:
virtual ~CIRCNetworkPingTimer() {}
CIRCNetworkPingTimer(const CIRCNetworkPingTimer&) = delete;
CIRCNetworkPingTimer& operator=(const CIRCNetworkPingTimer&) = delete;
protected:
void RunJob() override {
CIRCSock* pIRCSock = m_pNetwork->GetIRCSock();
@@ -66,6 +69,9 @@ public:
virtual ~CIRCNetworkJoinTimer() {}
CIRCNetworkJoinTimer(const CIRCNetworkJoinTimer&) = delete;
CIRCNetworkJoinTimer& operator=(const CIRCNetworkJoinTimer&) = delete;
void Delay(unsigned short int uDelay) {
m_bDelayed = true;
Start(uDelay);
+2
View File
@@ -41,6 +41,8 @@ class CIRCFloodTimer : public CCron {
CIRCFloodTimer(CIRCSock* pSock) : m_pSock(pSock) {
StartMaxCycles(m_pSock->m_fFloodRate, 0);
}
CIRCFloodTimer(const CIRCFloodTimer&) = delete;
CIRCFloodTimer& operator=(const CIRCFloodTimer&) = delete;
void RunJob() override {
if (m_pSock->m_iSendsAllowed < m_pSock->m_uFloodBurst) {
m_pSock->m_iSendsAllowed++;
+23 -11
View File
@@ -124,15 +124,28 @@ const CString& CTimer::GetDescription() const { return m_sDescription; }
/////////////////// !Timer ///////////////////
CModule::CModule(ModHandle pDLL, CUser* pUser, CIRCNetwork* pNetwork, const CString& sModName, const CString& sDataDir) {
m_pDLL = pDLL;
m_pManager = &(CZNC::Get().GetManager());;
m_pUser = pUser;
m_pNetwork = pNetwork;
m_pClient = nullptr;
m_sModName = sModName;
m_sDataDir = sDataDir;
CModule::CModule(ModHandle pDLL, CUser* pUser, CIRCNetwork* pNetwork, const CString& sModName, const CString& sDataDir, CModInfo::EModuleType eType)
: m_eType(eType),
m_sDescription(""),
m_sTimers(),
m_sSockets(),
#ifdef HAVE_PTHREAD
m_sJobs(),
#endif
m_pDLL(pDLL),
m_pManager(&(CZNC::Get().GetManager())),
m_pUser(pUser),
m_pNetwork(pNetwork),
m_pClient(nullptr),
m_sModName(sModName),
m_sDataDir(sDataDir),
m_sSavePath(""),
m_sArgs(""),
m_sModPath(""),
m_mssRegistry(),
m_vSubPages(),
m_mCommands()
{
if (m_pNetwork) {
m_sSavePath = m_pNetwork->GetNetworkPath() + "/moddata/" + m_sModName;
} else if (m_pUser) {
@@ -1023,9 +1036,8 @@ bool CModules::LoadModule(const CString& sModule, const CString& sArgs, CModInfo
return false;
}
CModule* pModule = Info.GetLoader()(p, pUser, pNetwork, sModule, sDataPath);
CModule* pModule = Info.GetLoader()(p, pUser, pNetwork, sModule, sDataPath, eType);
pModule->SetDescription(Info.GetDescription());
pModule->SetType(eType);
pModule->SetArgs(sArgs);
pModule->SetModPath(CDir::ChangeDir(CZNC::Get().GetCurPath(), sModPath));
push_back(pModule);
-6
View File
@@ -208,8 +208,6 @@ void CSockManager::StartTDNSThread(TDNSTask* task, bool bBind) {
arg->sHostname = sHostname;
arg->task = task;
arg->bBind = bBind;
arg->iRes = 0;
arg->aiResult = nullptr;
arg->pManager = this;
CThreadPool::Get().addJob(arg);
@@ -363,13 +361,9 @@ void CSockManager::Connect(const CString& sHostname, u_short iPort, const CStrin
task->bSSL = bSSL;
task->sBindhost = sBindHost;
task->pcSock = pcSock;
task->aiTarget = nullptr;
task->aiBind = nullptr;
task->bDoneTarget = false;
if (sBindHost.empty()) {
task->bDoneBind = true;
} else {
task->bDoneBind = false;
StartTDNSThread(task, true);
}
StartTDNSThread(task, false);
+3
View File
@@ -34,6 +34,9 @@ public:
}
virtual ~CUserTimer() {}
CUserTimer(const CUserTimer&) = delete;
CUserTimer& operator=(const CUserTimer&) = delete;
private:
protected:
void RunJob() override {
+3
View File
@@ -53,6 +53,9 @@ public:
CWebAuth(CWebSock* pWebSock, const CString& sUsername, const CString& sPassword, bool bBasic);
virtual ~CWebAuth() {}
CWebAuth(const CWebAuth&) = delete;
CWebAuth& operator=(const CWebAuth&) = delete;
void SetWebSock(CWebSock* pWebSock) { m_pWebSock = pWebSock; }
void AcceptedLogin(CUser& User) override;
void RefusedLogin(const CString& sReason) override;