aboutsummaryrefslogtreecommitdiffstats
path: root/src/kvilib/irc/kvi_ircserverdb.cpp
diff options
context:
space:
mode:
authorGravatar Alexey Uzhva2008-08-27 09:42:12 +0000
committerGravatar Alexey Uzhva2008-08-27 09:42:12 +0000
commit125283f80aedf205ecce5832051b621bfe7c3706 (patch)
tree341707d972d5d2b38c0945948b156a8f88960fe2 /src/kvilib/irc/kvi_ircserverdb.cpp
parentFix the OpenSSL licensing issue. Thnx to Kebianizao for taking care of compos... (diff)
downloadKVIrc-125283f80aedf205ecce5832051b621bfe7c3706.tar.gz
KVIrc-125283f80aedf205ecce5832051b621bfe7c3706.tar.bz2
KVIrc-125283f80aedf205ecce5832051b621bfe7c3706.zip
Goodbye, KviIrcServerDatabaseRecord, moved KviNetwork to separate header/source, code cleaning
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2311 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/kvilib/irc/kvi_ircserverdb.cpp')
-rw-r--r--src/kvilib/irc/kvi_ircserverdb.cpp203
1 files changed, 70 insertions, 133 deletions
diff --git a/src/kvilib/irc/kvi_ircserverdb.cpp b/src/kvilib/irc/kvi_ircserverdb.cpp
index f97992216..b6e52d942 100644
--- a/src/kvilib/irc/kvi_ircserverdb.cpp
+++ b/src/kvilib/irc/kvi_ircserverdb.cpp
@@ -35,63 +35,10 @@
#include "kvi_netutils.h"
#include "kvi_nickserv.h"
-KviServerDataBaseRecord::KviServerDataBaseRecord(KviNetwork * n)
-{
- m_pNetwork = n;
- m_pServerList = new KviPointerList<KviServer>;
- m_pServerList->setAutoDelete(true);
- m_pCurrentServer = 0;
-}
-
-KviServerDataBaseRecord::~KviServerDataBaseRecord()
-{
- delete m_pNetwork;
- delete m_pServerList;
-}
-
-void KviServerDataBaseRecord::insertServer(KviServer *srv)
-{
- m_pServerList->append(srv);
-}
-
-KviServer * KviServerDataBaseRecord::findServer(const QString & szHostname)
-{
- for (KviServer *s = m_pServerList->first(); s; s = m_pServerList->next())
- {
- if (KviQString::equalCI(s->m_szHostname, szHostname))
- return s;
- }
- return 0;
-}
-
-KviServer * KviServerDataBaseRecord::findServer(const KviServer * pServer)
-{
- for (KviServer *s = m_pServerList->first(); s; s = m_pServerList->next())
- {
- if (KviQString::equalCI(s->m_szHostname, pServer->m_szHostname)
- && (s->m_uPort == pServer->m_uPort) && (s->useSSL()
- == pServer->useSSL()) && (s->isIPv6() == pServer->isIPv6()))
- return s;
- }
- return 0;
-}
-
-void KviServerDataBaseRecord::setCurrentServer(KviServer *srv)
-{
- if(m_pServerList->findRef(srv) != -1)m_pCurrentServer = srv;
-}
-
-KviServer * KviServerDataBaseRecord::currentServer()
-{
- if(m_pCurrentServer)return m_pCurrentServer;
- m_pCurrentServer = m_pServerList->first();
- return m_pCurrentServer;
-}
-
KviServerDataBase::KviServerDataBase()
{
- m_pRecords = new KviPointerHashTable<QString,KviServerDataBaseRecord>(17,false);
+ m_pRecords = new KviPointerHashTable<QString,KviNetwork>(17,false);
m_pRecords->setAutoDelete(true);
m_pAutoConnectOnStartupServers = 0;
m_pAutoConnectOnStartupNetworks = 0;
@@ -124,40 +71,31 @@ void KviServerDataBase::clear()
m_szCurrentNetwork = "";
}
-KviServerDataBaseRecord * KviServerDataBase::addNetwork(KviNetwork *n)
-{
- KviServerDataBaseRecord * r = new KviServerDataBaseRecord(n);
- m_pRecords->replace(n->name(),r);
- return r;
-}
-
-KviServerDataBaseRecord * KviServerDataBase::findRecord(const QString &szNetName)
+void KviServerDataBase::addNetwork(KviNetwork *n)
{
- return m_pRecords->find(szNetName);
+ m_pRecords->replace(n->name(),n);
}
-
KviNetwork * KviServerDataBase::findNetwork(const QString &szName)
{
- KviServerDataBaseRecord * r = m_pRecords->find(szName);
- if(!r)return 0;
- return r->network();
+ KviNetwork * r = m_pRecords->find(szName);
+ return r;
}
-KviServerDataBaseRecord * KviServerDataBase::currentNetwork()
+KviNetwork * KviServerDataBase::currentNetwork()
{
- KviServerDataBaseRecord * r = 0;
+ KviNetwork * r = 0;
if(!m_szCurrentNetwork.isEmpty())r = m_pRecords->find(m_szCurrentNetwork);
if(r)return r;
- KviPointerHashTableIterator<QString,KviServerDataBaseRecord> it(*m_pRecords);
+ KviPointerHashTableIterator<QString,KviNetwork> it(*m_pRecords);
r = it.current();
if(!r)return 0;
- m_szCurrentNetwork = r->network()->name();
+ m_szCurrentNetwork = r->name();
return r;
}
-bool KviServerDataBase::makeCurrentBestServerInNetwork(const QString &szNetName,KviServerDataBaseRecord * r,QString &szError)
+bool KviServerDataBase::makeCurrentBestServerInNetwork(const QString &szNetName,KviNetwork * r,QString &szError)
{
m_szCurrentNetwork = szNetName;
// find a round-robin server in that network
@@ -206,8 +144,8 @@ bool KviServerDataBase::makeCurrentServer(KviServerDefinition * d,QString &szErr
{
KviServer * pServer = 0;
- KviPointerHashTableIterator<QString,KviServerDataBaseRecord> it(*m_pRecords);
- KviServerDataBaseRecord * r = 0;
+ KviPointerHashTableIterator<QString,KviNetwork> it(*m_pRecords);
+ KviNetwork * r = 0;
KviServer * srv;
if(KviQString::equalCIN(d->szServer,"net:",4))
@@ -215,7 +153,7 @@ bool KviServerDataBase::makeCurrentServer(KviServerDefinition * d,QString &szErr
// net:networkname form
QString szNet = d->szServer;
szNet.remove(0,4);
- KviServerDataBaseRecord * r = m_pRecords->find(szNet);
+ KviNetwork * r = m_pRecords->find(szNet);
if(r)return makeCurrentBestServerInNetwork(szNet,r,szError);
szError = __tr2qs("The server specification seems to be in the net:<string> but the network couln't be found in the database");
return false;
@@ -311,7 +249,7 @@ search_finished:
if(!d->szPass.isEmpty())pServer->m_szPass = d->szPass; // don't clear the pass!
if(!d->szInitUMode.isEmpty())pServer->m_szInitUMode = d->szInitUMode;
- m_szCurrentNetwork = r->network()->name();
+ m_szCurrentNetwork = r->name();
r->setCurrentServer(pServer);
return true;
}
@@ -330,7 +268,7 @@ search_finished:
if(!d->szServer.contains('.'))
{
// assume it is a network name!
- KviServerDataBaseRecord * r = m_pRecords->find(d->szServer);
+ KviNetwork * r = m_pRecords->find(d->szServer);
if(r)return makeCurrentBestServerInNetwork(d->szServer,r,szError);
// else probably not a network name
}
@@ -341,8 +279,8 @@ search_finished:
r = m_pRecords->find(__tr2qs("Standalone Servers"));
if(!r)
{
- r = new KviServerDataBaseRecord(new KviNetwork(__tr2qs("Standalone Servers")));
- m_pRecords->replace(r->network()->name(),r);
+ r = new KviNetwork(__tr2qs("Standalone Servers"));
+ m_pRecords->replace(r->name(),r);
}
KviServer * s = new KviServer();
@@ -371,7 +309,7 @@ search_finished:
s->setIPv6(d->bIPv6);
s->setUseSSL(d->bSSL);
r->insertServer(s);
- m_szCurrentNetwork = r->network()->name();
+ m_szCurrentNetwork = r->name();
r->setCurrentServer(s);
return true;
@@ -475,11 +413,11 @@ void KviServerDataBase::importFromMircIni(const QString & filename, const QStrin
parseMircServerRecord(entry,szNet,
szDescription,szHost,szPort,bSsl,uPort);
- KviServerDataBaseRecord * r = findRecord(szNet);
+ KviNetwork * r = findNetwork(szNet);
if(!r) {
- KviNetwork * n = new KviNetwork(szNet);
- r = addNetwork(n);
+ r = new KviNetwork(szNet);
+ addNetwork(r);
}
KviServer *s = new KviServer();
@@ -513,31 +451,31 @@ void KviServerDataBase::load(const QString & filename)
{
if(it.current()->count() > 0)
{
- KviNetwork * n = new KviNetwork(it.currentKey());
- KviServerDataBaseRecord * r = addNetwork(n);
+ KviNetwork * pNewNet = new KviNetwork(it.currentKey());
+ addNetwork(pNewNet);
cfg.setGroup(it.currentKey());
- n->m_szEncoding = cfg.readQStringEntry("Encoding");
- n->m_szTextEncoding = cfg.readQStringEntry("TextEncoding");
- n->m_szDescription = cfg.readQStringEntry("Description");
- n->m_szNickName = cfg.readQStringEntry("NickName");
- n->m_szRealName = cfg.readQStringEntry("RealName");
- n->m_szUserName = cfg.readQStringEntry("UserName");
- n->m_szOnConnectCommand = cfg.readQStringEntry("OnConnectCommand");
- n->m_szOnLoginCommand = cfg.readQStringEntry("OnLoginCommand");
- n->m_pNickServRuleSet = KviNickServRuleSet::load(&cfg,QString::null);
- n->m_bAutoConnect = cfg.readBoolEntry("AutoConnect",false);
- n->m_szUserIdentityId = cfg.readQStringEntry("UserIdentityId");
- if(n->m_bAutoConnect)
+ pNewNet->m_szEncoding = cfg.readQStringEntry("Encoding");
+ pNewNet->m_szTextEncoding = cfg.readQStringEntry("TextEncoding");
+ pNewNet->m_szDescription = cfg.readQStringEntry("Description");
+ pNewNet->m_szNickName = cfg.readQStringEntry("NickName");
+ pNewNet->m_szRealName = cfg.readQStringEntry("RealName");
+ pNewNet->m_szUserName = cfg.readQStringEntry("UserName");
+ pNewNet->m_szOnConnectCommand = cfg.readQStringEntry("OnConnectCommand");
+ pNewNet->m_szOnLoginCommand = cfg.readQStringEntry("OnLoginCommand");
+ pNewNet->m_pNickServRuleSet = KviNickServRuleSet::load(&cfg,QString::null);
+ pNewNet->m_bAutoConnect = cfg.readBoolEntry("AutoConnect",false);
+ pNewNet->m_szUserIdentityId = cfg.readQStringEntry("UserIdentityId");
+ if(pNewNet->m_bAutoConnect)
{
if(!m_pAutoConnectOnStartupNetworks)
{
- m_pAutoConnectOnStartupNetworks = new KviPointerList<KviServerDataBaseRecord>;
+ m_pAutoConnectOnStartupNetworks = new KviPointerList<KviNetwork>;
m_pAutoConnectOnStartupNetworks->setAutoDelete(false);
}
- m_pAutoConnectOnStartupNetworks->append(r);
+ m_pAutoConnectOnStartupNetworks->append(pNewNet);
}
QStringList l = cfg.readStringListEntry("AutoJoinChannels",QStringList());
- if(l.count() > 0)n->setAutoJoinChannelList(new QStringList(l));
+ if(l.count() > 0)pNewNet->setAutoJoinChannelList(new QStringList(l));
if(cfg.readBoolEntry("Current",false))m_szCurrentNetwork = it.currentKey();
@@ -548,9 +486,9 @@ void KviServerDataBase::load(const QString & filename)
KviQString::sprintf(tmp,"%d_",i);
if(s->load(&cfg,tmp))
{
- r->m_pServerList->append(s);
+ pNewNet->m_pServerList->append(s);
KviQString::sprintf(tmp,"%d_Current",i);
- if(cfg.readBoolEntry(tmp,false))r->m_pCurrentServer = s;
+ if(cfg.readBoolEntry(tmp,false))pNewNet->m_pCurrentServer = s;
if(s->autoConnect())
{
if(!m_pAutoConnectOnStartupServers)
@@ -562,7 +500,7 @@ void KviServerDataBase::load(const QString & filename)
}
} else delete s;
}
- if(!r->m_pCurrentServer)r->m_pCurrentServer = r->m_pServerList->first();
+ if(!pNewNet->m_pCurrentServer)pNewNet->m_pCurrentServer = pNewNet->m_pServerList->first();
}
++it;
}
@@ -574,46 +512,45 @@ void KviServerDataBase::save(const QString &filename)
cfg.clear(); // clear any old entry
- KviPointerHashTableIterator<QString,KviServerDataBaseRecord> it(*m_pRecords);
+ KviPointerHashTableIterator<QString,KviNetwork> it(*m_pRecords);
QString tmp;
- while(KviServerDataBaseRecord * r = it.current())
+ while(KviNetwork * pNetwork = it.current())
{
- KviNetwork * n = r->network();
- cfg.setGroup(n->m_szName);
- cfg.writeEntry("NServers",r->m_pServerList->count());
- if(n->m_bAutoConnect)
+ cfg.setGroup(pNetwork->name());
+ cfg.writeEntry("NServers",pNetwork->m_pServerList->count());
+ if(pNetwork->m_bAutoConnect)
cfg.writeEntry("AutoConnect",true);
- if(!n->m_szEncoding.isEmpty())
- cfg.writeEntry("Encoding",n->m_szEncoding);
- if(!n->m_szTextEncoding.isEmpty())
- cfg.writeEntry("TextEncoding",n->m_szTextEncoding);
- if(!n->m_szDescription.isEmpty())
- cfg.writeEntry("Description",n->m_szDescription);
- if(!n->m_szNickName.isEmpty())
- cfg.writeEntry("NickName",n->m_szNickName);
- if(!n->m_szRealName.isEmpty())
- cfg.writeEntry("RealName",n->m_szRealName);
- if(!n->m_szUserName.isEmpty())
- cfg.writeEntry("UserName",n->m_szUserName);
- if(!n->m_szOnConnectCommand.isEmpty())
- cfg.writeEntry("OnConnectCommand",n->m_szOnConnectCommand);
- if(!n->m_szOnLoginCommand.isEmpty())
- cfg.writeEntry("OnLoginCommand",n->m_szOnLoginCommand);
- if(n->m_pNickServRuleSet)n->m_pNickServRuleSet->save(&cfg,QString::null);
- if(n->autoJoinChannelList())
- cfg.writeEntry("AutoJoinChannels",*(n->autoJoinChannelList()));
- if(n->m_szName == m_szCurrentNetwork)cfg.writeEntry("Current",true);
- if(!n->m_szUserIdentityId.isEmpty())
- cfg.writeEntry("UserIdentityId",n->m_szUserIdentityId);
+ if(!pNetwork->m_szEncoding.isEmpty())
+ cfg.writeEntry("Encoding",pNetwork->m_szEncoding);
+ if(!pNetwork->m_szTextEncoding.isEmpty())
+ cfg.writeEntry("TextEncoding",pNetwork->m_szTextEncoding);
+ if(!pNetwork->m_szDescription.isEmpty())
+ cfg.writeEntry("Description",pNetwork->m_szDescription);
+ if(!pNetwork->m_szNickName.isEmpty())
+ cfg.writeEntry("NickName",pNetwork->m_szNickName);
+ if(!pNetwork->m_szRealName.isEmpty())
+ cfg.writeEntry("RealName",pNetwork->m_szRealName);
+ if(!pNetwork->m_szUserName.isEmpty())
+ cfg.writeEntry("UserName",pNetwork->m_szUserName);
+ if(!pNetwork->m_szOnConnectCommand.isEmpty())
+ cfg.writeEntry("OnConnectCommand",pNetwork->m_szOnConnectCommand);
+ if(!pNetwork->m_szOnLoginCommand.isEmpty())
+ cfg.writeEntry("OnLoginCommand",pNetwork->m_szOnLoginCommand);
+ if(pNetwork->m_pNickServRuleSet)pNetwork->m_pNickServRuleSet->save(&cfg,QString::null);
+ if(pNetwork->autoJoinChannelList())
+ cfg.writeEntry("AutoJoinChannels",*(pNetwork->autoJoinChannelList()));
+ if(pNetwork->m_szName == m_szCurrentNetwork)cfg.writeEntry("Current",true);
+ if(!pNetwork->m_szUserIdentityId.isEmpty())
+ cfg.writeEntry("UserIdentityId",pNetwork->m_szUserIdentityId);
int i=0;
- for(KviServer *s = r->m_pServerList->first();s;s = r->m_pServerList->next())
+ for(KviServer *s = pNetwork->m_pServerList->first();s;s = pNetwork->m_pServerList->next())
{
KviQString::sprintf(tmp,"%d_",i);
s->save(&cfg,tmp);
- if(s == r->m_pCurrentServer)
+ if(s == pNetwork->m_pCurrentServer)
{
KviQString::sprintf(tmp,"%d_Current",i);
cfg.writeEntry(tmp,true);