X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fcoreconnection.h;h=cff2fe0df298defaa6af19ae61200caa01235bb8;hp=ba33f178041064115a23024061d60ccb80596451;hb=HEAD;hpb=a8dd070641e70ff96fc2077df63cc5fabe3f7785 diff --git a/src/client/coreconnection.h b/src/client/coreconnection.h index ba33f178..d51d429d 100644 --- a/src/client/coreconnection.h +++ b/src/client/coreconnection.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2015 by the Quassel Project * + * Copyright (C) 2005-2022 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,16 +20,13 @@ #pragma once +#include "client-export.h" + #include #include +#include #include -#ifdef HAVE_SSL -# include -#else -# include -#endif - #include "coreaccount.h" #include "remotepeer.h" #include "types.h" @@ -41,12 +38,13 @@ class Network; class Peer; class SignalProxy; -class CoreConnection : public QObject +class CLIENT_EXPORT CoreConnection : public QObject { Q_OBJECT public: - enum ConnectionState { + enum ConnectionState + { Disconnected, Connecting, Connected, @@ -54,7 +52,7 @@ public: Synchronized }; - CoreConnection(QObject *parent = 0); + CoreConnection(QObject* parent = nullptr); void init(); @@ -73,14 +71,15 @@ public: //! Check if we consider the last connect as reconnect bool wasReconnect() const { return _wasReconnect; } - QPointer peer() { return _peer; } + QPointer peer() const; public slots: bool connectToCore(AccountId = 0); void reconnectToCore(); void disconnectFromCore(); + void internalSessionStateReceived(const Protocol::SessionState& sessionState); - void setupCore(const Protocol::SetupData &setupData); + void setupCore(const Protocol::SetupData& setupData); signals: void stateChanged(CoreConnection::ConnectionState); @@ -88,62 +87,58 @@ signals: void synchronized(); void lagUpdated(int msecs); - void connectionError(const QString &errorMsg); - void connectionErrorPopup(const QString &errorMsg); - void connectionMsg(const QString &msg); + void connectionError(const QString& errorMsg); + void connectionErrorPopup(const QString& errorMsg); + void connectionMsg(const QString& msg); void disconnected(); void progressRangeChanged(int minimum, int maximum); void progressValueChanged(int value); - void progressTextChanged(const QString &); + void progressTextChanged(const QString&); - void startCoreSetup(const QVariantList &backendInfo); + void startCoreSetup(const QVariantList& backendInfo, const QVariantList& authenticatorInfo); void coreSetupSuccess(); - void coreSetupFailed(const QString &error); + void coreSetupFailed(const QString& error); - void startInternalCore(); - void connectToInternalCore(InternalPeer *connection); + void connectToInternalCore(QPointer connection); // These signals MUST be handled synchronously! - void userAuthenticationRequired(CoreAccount *, bool *valid, const QString &errorMessage = QString()); - void handleNoSslInClient(bool *accepted); - void handleNoSslInCore(bool *accepted); -#ifdef HAVE_SSL - void handleSslErrors(const QSslSocket *socket, bool *accepted, bool *permanently); -#endif + void userAuthenticationRequired(CoreAccount*, bool* valid, const QString& errorMessage = QString()); + void handleNoSslInClient(bool* accepted); + void handleNoSslInCore(bool* accepted); + void handleSslErrors(const QSslSocket* socket, bool* accepted, bool* permanently); private slots: void connectToCurrentAccount(); - void disconnectFromCore(const QString &errorString, bool wantReconnect = true); + void disconnectFromCore(const QString& errorString, bool wantReconnect = true); - void coreSocketError(QAbstractSocket::SocketError error, const QString &errorString); + void coreSocketError(QAbstractSocket::SocketError error, const QString& errorString); void coreSocketDisconnected(); // for sync progress void networkInitDone(); void checkSyncState(); - void loginToCore(const QString &user, const QString &password, bool remember); // for config wizard - void syncToCore(const Protocol::SessionState &sessionState); - void internalSessionStateReceived(const Protocol::SessionState &sessionState); + void loginToCore(const QString& user, const QString& password, bool remember); // for config wizard + void syncToCore(const Protocol::SessionState& sessionState); void resetConnection(bool wantReconnect = false); void onConnectionReady(); - void onLoginSuccessful(const CoreAccount &account); - void onHandshakeComplete(RemotePeer *peer, const Protocol::SessionState &sessionState); + void onLoginSuccessful(const CoreAccount& account); + void onHandshakeComplete(RemotePeer* peer, const Protocol::SessionState& sessionState); void updateProgress(int value, int maximum); - void setProgressText(const QString &text); + void setProgressText(const QString& text); void setProgressValue(int value); void setProgressMinimum(int minimum); void setProgressMaximum(int maximum); void setState(ConnectionState state); - void networkDetectionModeChanged(const QVariant &mode); - void pingTimeoutIntervalChanged(const QVariant &interval); - void reconnectIntervalChanged(const QVariant &interval); + void networkDetectionModeChanged(const QVariant& mode); + void pingTimeoutIntervalChanged(const QVariant& interval); + void reconnectIntervalChanged(const QVariant& interval); void reconnectTimeout(); void onlineStateChanged(bool isOnline); @@ -151,36 +146,56 @@ private slots: private: QPointer _authHandler; QPointer _peer; - ConnectionState _state; + ConnectionState _state{Disconnected}; QTimer _reconnectTimer; - bool _wantReconnect; - bool _wasReconnect; + bool _wantReconnect{false}; + bool _wasReconnect{false}; - QSet _netsToSync; + QSet _netsToSync; int _numNetsToSync; - int _progressMinimum, _progressMaximum, _progressValue; + int _progressMinimum{0}, _progressMaximum{-1}, _progressValue{-1}; QString _progressText; - bool _resetting; + bool _resetting{false}; CoreAccount _account; - CoreAccountModel *accountModel() const; + CoreAccountModel* accountModel() const; QPointer _qNetworkConfigurationManager; friend class CoreConfigWizard; }; - Q_DECLARE_METATYPE(CoreConnection::ConnectionState) // Inlines -inline int CoreConnection::progressMinimum() const { return _progressMinimum; } -inline int CoreConnection::progressMaximum() const { return _progressMaximum; } -inline int CoreConnection::progressValue() const { return _progressValue; } -inline QString CoreConnection::progressText() const { return _progressText; } - -inline CoreConnection::ConnectionState CoreConnection::state() const { return _state; } -inline bool CoreConnection::isConnected() const { return state() >= Connected; } -inline CoreAccount CoreConnection::currentAccount() const { return _account; } +inline int CoreConnection::progressMinimum() const +{ + return _progressMinimum; +} +inline int CoreConnection::progressMaximum() const +{ + return _progressMaximum; +} +inline int CoreConnection::progressValue() const +{ + return _progressValue; +} +inline QString CoreConnection::progressText() const +{ + return _progressText; +} + +inline CoreConnection::ConnectionState CoreConnection::state() const +{ + return _state; +} +inline bool CoreConnection::isConnected() const +{ + return state() >= Connected; +} +inline CoreAccount CoreConnection::currentAccount() const +{ + return _account; +}