X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcorenetwork.h;h=d30bb6e7c3781b7b8eb897c6b51fa33c61cddbb8;hb=39eb2fda3eaef2de78a8134556015ff86e9b85d4;hp=a0e8c179e58d0be375bd9fe0b0caa2c46ac98020;hpb=b9828e0dd235964b8e2e97f844f4bed3476d3bd4;p=quassel.git diff --git a/src/core/corenetwork.h b/src/core/corenetwork.h index a0e8c179..d30bb6e7 100644 --- a/src/core/corenetwork.h +++ b/src/core/corenetwork.h @@ -41,6 +41,7 @@ class UserInputHandler; class CtcpHandler; class CoreNetwork : public Network { + SYNCABLE_OBJECT Q_OBJECT public: @@ -50,6 +51,7 @@ public: inline CoreIdentity *identityPtr() const { return coreSession()->identity(identity()); } inline CoreSession *coreSession() const { return _coreSession; } + inline CoreNetworkConfig *networkConfig() const { return coreSession()->networkConfig(); } inline IrcServerHandler *ircServerHandler() const { return _ircServerHandler; } inline UserInputHandler *userInputHandler() const { return _userInputHandler; } @@ -90,6 +92,8 @@ public slots: virtual void setAutoReconnectInterval(quint32); virtual void setAutoReconnectRetries(quint16); + void setPingInterval(int interval); + void connectToIrc(bool reconnecting = false); void disconnectFromIrc(bool requested = true, const QString &reason = QString(), bool withReconnect = false); @@ -102,11 +106,15 @@ public slots: void addChannelKey(const QString &channel, const QString &key); void removeChannelKey(const QString &channel); + void setAutoWhoEnabled(bool enabled); + void setAutoWhoInterval(int interval); + void setAutoWhoDelay(int delay); + bool setAutoWhoDone(const QString &channel); Server usedServer() const; - inline void resetPingTimeout() { _lastPingTime = 0; } + inline void resetPingTimeout() { _pingCount = 0; } inline void displayMsg(Message::Type msgType, BufferInfo::Type bufferType, const QString &target, const QString &text, const QString &sender = "", Message::Flags flags = Message::None) { emit displayMsg(networkId(), msgType, bufferType, target, text, sender, flags); @@ -138,7 +146,7 @@ private slots: void restoreUserModes(); void doAutoReconnect(); void sendPing(); - void enablePingTimeout(); + void enablePingTimeout(bool enable = true); void disablePingTimeout(); void sendAutoWho(); void startAutoWhoCycle(); @@ -182,17 +190,14 @@ private: QTimer _pingTimer; uint _lastPingTime; + uint _pingCount; - bool _autoWhoEnabled; QStringList _autoWhoQueue; 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;