diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-11 07:31:23 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-11 07:31:23 +0000 |
| commit | 40c39853816cfab113d79682c34bc76a2c79c357 (patch) | |
| tree | e4d6a184cf565cb87477339ce738299ff9787bc3 /source/QXmppReconnectionManager.cpp | |
| parent | 551c284e35280b7b91a939fe7352e496ffea402a (diff) | |
| download | qxmpp-40c39853816cfab113d79682c34bc76a2c79c357.tar.gz | |
rename "source" directory to "src"
Diffstat (limited to 'source/QXmppReconnectionManager.cpp')
| -rw-r--r-- | source/QXmppReconnectionManager.cpp | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/source/QXmppReconnectionManager.cpp b/source/QXmppReconnectionManager.cpp deleted file mode 100644 index 615d47a5..00000000 --- a/source/QXmppReconnectionManager.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 2008-2010 The QXmpp developers - * - * Author: - * Manjeet Dahiya - * - * Source: - * http://code.google.com/p/qxmpp - * - * This file is a part of QXmpp library. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - */ - - -#include "QXmppReconnectionManager.h" -#include "QXmppClient.h" -#include "QXmppLogger.h" -#include "QXmppUtils.h" - -QXmppReconnectionManager::QXmppReconnectionManager(QXmppClient* client) : - QObject(client), - m_receivedConflict(false), - m_reconnectionTries(0), - m_timer(this), - m_client(client) -{ - m_timer.setSingleShot(true); - bool check = connect(&m_timer, SIGNAL(timeout()), SLOT(reconnect())); - Q_ASSERT(check); - Q_UNUSED(check); -} - -void QXmppReconnectionManager::connected() -{ - m_receivedConflict = false; - m_reconnectionTries = 0; -} - -void QXmppReconnectionManager::error(QXmppClient::Error error) -{ - if(m_client && error == QXmppClient::XmppStreamError) - { - // if we receive a resource conflict, inhibit reconnection - if(m_client->xmppStreamError() == QXmppStanza::Error::Conflict) - m_receivedConflict = true; - } - else if(m_client && error == QXmppClient::SocketError && !m_receivedConflict) - { - int time = getNextReconnectingInTime(); - - // time is in sec - m_timer.start(time*1000); - emit reconnectingIn(time); - } - else if (m_client && error == QXmppClient::KeepAliveError) - { - // if we got a keepalive error, reconnect in one second - m_timer.start(1000); - } -} - -int QXmppReconnectionManager::getNextReconnectingInTime() -{ - int reconnectingIn; - if(m_reconnectionTries < 5) - reconnectingIn = 10; - else if(m_reconnectionTries < 10) - reconnectingIn = 20; - else if(m_reconnectionTries < 15) - reconnectingIn = 40; - else - reconnectingIn = 60; - - return reconnectingIn; -} - -void QXmppReconnectionManager::reconnect() -{ - if(m_client) - { - emit reconnectingNow(); - m_client->connectToServer(m_client->configuration(), m_client->clientPresence()); - } -} - -void QXmppReconnectionManager::cancelReconnection() -{ - m_timer.stop(); - m_receivedConflict = false; - m_reconnectionTries = 0; -} |
