X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclientsyncer.h;h=aa8d786af7da9eaebb16a587da25208036915e20;hp=b77b234b0d7dee9a8609ad43fa57bd0b5a4cb524;hb=46d75f41de7c1aaee605c096da28d4b0d8abf138;hpb=8f50c6cce47eaae781de54eabb0dbff3cfc8b451 diff --git a/src/client/clientsyncer.h b/src/client/clientsyncer.h index b77b234b..aa8d786a 100644 --- a/src/client/clientsyncer.h +++ b/src/client/clientsyncer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel IRC Team * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,8 +18,8 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _CLIENTSYNCER_H_ -#define _CLIENTSYNCER_H_ +#ifndef CLIENTSYNCER_H_ +#define CLIENTSYNCER_H_ #include #include @@ -31,8 +31,11 @@ # include #endif +#include "types.h" + class IrcUser; class IrcChannel; +class SignalProxy; class ClientSyncer : public QObject { Q_OBJECT @@ -41,9 +44,12 @@ public: ClientSyncer(QObject *parent = 0); ~ClientSyncer(); + inline const QIODevice *currentDevice() { return _socket; } + signals: void recvPartialItem(quint32 avail, quint32 size); void connectionError(const QString &errorMsg); + void connectionWarnings(const QStringList &warnings); void connectionMsg(const QString &msg); void sessionProgress(quint32 part, quint32 total); void networksProgress(quint32 part, quint32 total); @@ -58,12 +64,20 @@ signals: void coreSetupSuccess(); void coreSetupFailed(const QString &error); - void encrypted(bool); + void encrypted(); // relaying encrypted signal of the encapsulated SslSocket + + void startInternalCore(ClientSyncer *syncer); + void connectToInternalCore(SignalProxy *proxy); + + void handleIgnoreWarnings(bool permanently); public slots: void connectToCore(const QVariantMap &); void loginToCore(const QString &user, const QString &passwd); void disconnectFromCore(); + void useInternalCore(); + + inline void ignoreWarnings(bool permanently) { emit handleIgnoreWarnings(permanently); } private slots: void coreSocketError(QAbstractSocket::SocketError); @@ -78,17 +92,28 @@ private slots: void checkSyncState(); void syncToCore(const QVariantMap &sessionState); + void internalSessionStateReceived(const QVariant &packedState); void sessionStateReceived(const QVariantMap &state); + void connectionReady(); void doCoreSetup(const QVariant &setupData); + + void setWarningsHandler(const char *slot); + void resetWarningsHandler(); + void resetConnection(); + #ifdef HAVE_SSL - void sslErrors(const QList &errors); + void ignoreSslWarnings(bool permanently); + void sslSocketEncrypted(); + void sslErrors(const QList &errors); #endif private: - QPointer socket; - quint32 blockSize; + QPointer _socket; + quint32 _blockSize; + QVariantMap coreConnectionInfo; + QVariantMap _coreMsgBuffer; QSet netsToSync; int numNetsToSync;