aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppReconnectionManager.h
blob: 77f0e5b69b7c39bedad8dd2c72eca3fdc1c07b52 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef QXMPPRECONNECTIONMANAGER_H
#define QXMPPRECONNECTIONMANAGER_H

#include <QObject>
#include <QTimer>
#include "QXmppClient.h"

class QXmppClient;

class QXmppReconnectionManager : public QObject
{
    Q_OBJECT

public:
    QXmppReconnectionManager(QXmppClient* client);

signals:
    void reconnectingIn(int);
    void reconnectingNow();

public slots:
    void cancelReconnection();

private slots:
    void connected();
    void error(QXmppClient::Error);
    void reconnect();

private:
    int getNextReconnectingInTime();
    int m_reconnectionTries;
    QTimer m_timer;

    // reference to to client object (no ownership)
    QXmppClient* m_client;
};

#endif // QXMPPRECONNECTIONMANAGER_H