* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
-#ifndef _CLIENTSYNCER_H_
-#define _CLIENTSYNCER_H_
+#ifndef CLIENTSYNCER_H_
+#define CLIENTSYNCER_H_
#include <QPointer>
#include <QString>
-#include <QTcpSocket>
#include <QVariantMap>
+#ifdef HAVE_SSL
+# include <QSslSocket>
+#else
+# include <QTcpSocket>
+#endif
+
+#include "types.h"
+
class IrcUser;
class IrcChannel;
+class SignalProxy;
class ClientSyncer : public QObject {
Q_OBJECT
- public:
- ClientSyncer(QObject *parent = 0);
- ~ClientSyncer();
-
- signals:
- void recvPartialItem(quint32 avail, quint32 size);
- void connectionError(const QString &errorMsg);
- void connectionMsg(const QString &msg);
- void sessionProgress(quint32 part, quint32 total);
- void networksProgress(quint32 part, quint32 total);
- void channelsProgress(quint32 part, quint32 total);
- void ircUsersProgress(quint32 part, quint32 total);
- void socketStateChanged(QAbstractSocket::SocketState);
- void socketDisconnected();
-
- void startLogin();
- void loginFailed(const QString &error);
- void loginSuccess();
- void syncFinished();
+public:
+ ClientSyncer(QObject *parent = 0);
+ ~ClientSyncer();
+
+signals:
+ void recvPartialItem(quint32 avail, quint32 size);
+ void connectionError(const QString &errorMsg);
+ void connectionMsg(const QString &msg);
+ void sessionProgress(quint32 part, quint32 total);
+ void networksProgress(quint32 part, quint32 total);
+ void socketStateChanged(QAbstractSocket::SocketState);
+ void socketDisconnected();
+
+ void startLogin();
+ void loginFailed(const QString &error);
+ void loginSuccess();
+ void syncFinished();
+ void startCoreSetup(const QVariantList &);
+ void coreSetupSuccess();
+ void coreSetupFailed(const QString &error);
+
+ void encrypted(bool);
+
+ void startInternalCore(ClientSyncer *syncer);
+ void connectToInternalCore(SignalProxy *proxy);
+
+public slots:
+ void connectToCore(const QVariantMap &);
+ void loginToCore(const QString &user, const QString &passwd);
+ void disconnectFromCore();
+ void useInternalCore();
+
+private slots:
+ void coreSocketError(QAbstractSocket::SocketError);
+ void coreHasData();
+ void coreSocketConnected();
+ void coreSocketDisconnected();
+
+ void clientInitAck(const QVariantMap &msg);
+ // for sync progress
+ void networkInitDone();
+ void checkSyncState();
- public slots:
- void connectToCore(const QVariantMap &);
- void loginToCore(const QString &user, const QString &passwd);
- void disconnectFromCore();
-
- private slots:
- void coreSocketError(QAbstractSocket::SocketError);
- void coreHasData();
- void coreSocketConnected();
- void coreSocketDisconnected();
+ void syncToCore(const QVariantMap &sessionState);
+ void internalSessionStateReceived(const QVariant &packedState);
+ void sessionStateReceived(const QVariantMap &state);
- void clientInitAck(const QVariantMap &msg);
+ void doCoreSetup(const QVariant &setupData);
+#ifdef HAVE_SSL
+ void sslErrors(const QList<QSslError> &errors);
+#endif
- // for sync progress
- void networkInitDone();
- void ircUserAdded(IrcUser *);
- void ircUserRemoved(QObject *);
- void ircUserInitDone(IrcUser *);
- void ircChannelAdded(IrcChannel *);
- void ircChannelRemoved(QObject *);
- void ircChannelInitDone(IrcChannel *);
- void checkSyncState();
-
- void syncToCore(const QVariantMap &sessionState);
- void sessionStateReceived(const QVariantMap &state);
-
- private:
- QPointer<QIODevice> socket;
- quint32 blockSize;
- QVariantMap coreConnectionInfo;
-
- QSet<QObject *> netsToSync, channelsToSync, usersToSync;
- int numNetsToSync, numChannelsToSync, numUsersToSync;
+private:
+ QPointer<QIODevice> socket;
+ quint32 blockSize;
+ QVariantMap coreConnectionInfo;
+ QSet<QObject *> netsToSync;
+ int numNetsToSync;
};
#endif