From 5fea8a69c17bf1736a33fcbcc9a9872fed35ced6 Mon Sep 17 00:00:00 2001 From: psychon Date: Thu, 10 Sep 2009 10:50:48 +0000 Subject: [PATCH] Unify CJoinTimer and CMiscTimer to CUserTimer The CJoinTimer which fired every 20s made the user try to join channels if there were still some channels pending. The CMiscTimer checked every 30s if a irc or client socket is near its timeout and sent a "PING" if it was. The new CUserTimer now does both every 30s. git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1623 726aef4b-f618-498e-8847-2d620e286838 --- Timers.h | 24 ++++-------------------- User.cpp | 9 +++------ User.h | 6 ++---- 3 files changed, 9 insertions(+), 30 deletions(-) diff --git a/Timers.h b/Timers.h index 429fa15e..facddbda 100644 --- a/Timers.h +++ b/Timers.h @@ -13,14 +13,14 @@ #include "IRCSock.h" #include "User.h" -class CMiscTimer : public CCron { +class CUserTimer : public CCron { public: - CMiscTimer(CUser* pUser) : CCron() { + CUserTimer(CUser* pUser) : CCron() { m_pUser = pUser; - SetName("CMiscTimer::" + m_pUser->GetUserName()); + SetName("CUserTimer::" + m_pUser->GetUserName()); Start(30); } - virtual ~CMiscTimer() {} + virtual ~CUserTimer() {} private: protected: @@ -39,23 +39,7 @@ protected: pClient->PutClient("PING :ZNC"); } } - } - CUser* m_pUser; -}; - -class CJoinTimer : public CCron { -public: - CJoinTimer(CUser* pUser) : CCron() { - m_pUser = pUser; - SetName("CJoinTimer::" + m_pUser->GetUserName()); - Start(20); - } - virtual ~CJoinTimer() {} - -private: -protected: - virtual void RunJob() { if (m_pUser->IsIRCConnected()) { m_pUser->JoinChans(); } diff --git a/User.cpp b/User.cpp index 188dfd25..e2bd903e 100644 --- a/User.cpp +++ b/User.cpp @@ -48,10 +48,8 @@ CUser::CUser(const CString& sUserName) { m_bAppendTimestamp = false; m_bPrependTimestamp = true; m_bIRCConnectEnabled = true; - m_pJoinTimer = new CJoinTimer(this); - m_pMiscTimer = new CMiscTimer(this); - CZNC::Get().GetManager().AddCron(m_pJoinTimer); - CZNC::Get().GetManager().AddCron(m_pMiscTimer); + m_pUserTimer = new CUserTimer(this); + CZNC::Get().GetManager().AddCron(m_pUserTimer); m_sUserPath = CZNC::Get().GetUserPath() + "/" + sUserName; m_sDLPath = GetUserPath() + "/downloads"; } @@ -76,8 +74,7 @@ CUser::~CUser() { while (!m_sDCCSocks.empty()) CZNC::Get().GetManager().DelSockByAddr((CZNCSock*) *m_sDCCSocks.begin()); - CZNC::Get().GetManager().DelCronByAddr(m_pJoinTimer); - CZNC::Get().GetManager().DelCronByAddr(m_pMiscTimer); + CZNC::Get().GetManager().DelCronByAddr(m_pUserTimer); } #ifdef _MODULES diff --git a/User.h b/User.h index 3063de1e..efc5ea56 100644 --- a/User.h +++ b/User.h @@ -24,8 +24,7 @@ using std::vector; class CChan; class CClient; class CIRCSock; -class CJoinTimer; -class CMiscTimer; +class CUserTimer; class CServer; class CDCCBounce; class CDCCSock; @@ -265,8 +264,7 @@ protected: bool m_bIRCConnectEnabled; CIRCSock* m_pIRCSock; - CJoinTimer* m_pJoinTimer; - CMiscTimer* m_pMiscTimer; + CUserTimer* m_pUserTimer; vector m_vServers; vector m_vChans;