X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcorenetwork.h;h=095e0fed90b70a3b8f3061244f39e9fef129dca8;hb=77316d5da8cf883a850238c8b9cb645a9bfc50db;hp=f0887070128550fc68529b0a6adc6db20982bc76;hpb=710edfe368ed1db79cc274164523d14afc1b2c9d;p=quassel.git diff --git a/src/core/corenetwork.h b/src/core/corenetwork.h index f0887070..095e0fed 100644 --- a/src/core/corenetwork.h +++ b/src/core/corenetwork.h @@ -75,7 +75,7 @@ public: inline QString channelKey(const QString &channel) const { return _channelKeys.value(channel.toLower(), QString()); } - inline bool isAutoWhoInProgress(const QString &channel) const { return _autoWhoInProgress.value(channel.toLower(), 0); } + inline bool isAutoWhoInProgress(const QString &channel) const { return _autoWhoPending.value(channel.toLower(), 0); } inline UserId userId() const { return _coreSession->user(); } @@ -91,7 +91,7 @@ public slots: virtual void setAutoReconnectRetries(quint16); void connectToIrc(bool reconnecting = false); - void disconnectFromIrc(bool requested = true, const QString &reason = QString()); + void disconnectFromIrc(bool requested = true, const QString &reason = QString(), bool withReconnect = false); void userInput(BufferInfo bufferInfo, QString msg); void putRawLine(QByteArray input); @@ -106,6 +106,8 @@ public slots: Server usedServer() const; + inline void resetPingTimeout() { _pingCount = 0; } + signals: void recvRawServerMsg(QString); void displayStatusMsg(QString); @@ -129,8 +131,11 @@ private slots: void networkInitialized(); void sendPerform(); + void restoreUserModes(); void doAutoReconnect(); void sendPing(); + void enablePingTimeout(); + void disablePingTimeout(); void sendAutoWho(); void startAutoWhoCycle(); @@ -166,22 +171,26 @@ private: * it is needed to determine whether or not the connection needs to be * in the automatic session restore. */ bool _quitRequested; + QString _quitReason; bool _previousConnectionAttemptFailed; int _lastUsedServerIndex; QTimer _pingTimer; + uint _lastPingTime; + uint _maxPingCount; + uint _pingCount; bool _autoWhoEnabled; QStringList _autoWhoQueue; - QHash _autoWhoInProgress; + QHash _autoWhoPending; int _autoWhoInterval; int _autoWhoNickLimit; int _autoWhoDelay; QTimer _autoWhoTimer, _autoWhoCycleTimer; QTimer _tokenBucketTimer; - int _messagesPerSecond; // token refill speed + int _messageDelay; // token refill speed in ms int _burstSize; // size of the token bucket int _tokenBucket; // the virtual bucket that holds the tokens QList _msgQueue;