X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fsignalproxy.h;h=18038093edc0f9db64a8cc600929af5667c5daaf;hb=6fe50f14efa32c2ed95e7b34a4ba1fd1604617ec;hp=15acc886d8e73b4c33c9a317aa04d06465c93d92;hpb=fe313ca8ab4c082c63b27f5e1c23541975c7f47f;p=quassel.git diff --git a/src/common/signalproxy.h b/src/common/signalproxy.h index 15acc886..18038093 100644 --- a/src/common/signalproxy.h +++ b/src/common/signalproxy.h @@ -48,7 +48,8 @@ public: RpcCall, InitRequest, InitData, - HeartBeat + HeartBeat, + HeartBeatReply }; SignalProxy(QObject *parent); @@ -57,7 +58,7 @@ public: virtual ~SignalProxy(); void setProxyMode(ProxyMode mode); - ProxyMode proxyMode() const; + inline ProxyMode proxyMode() const { return _proxyMode; } bool addPeer(QIODevice *iodev); void removePeer(QIODevice *iodev = 0); @@ -120,14 +121,18 @@ private slots: void objectRenamed(const QString &newname, const QString &oldname); void objectRenamed(const QByteArray &classname, const QString &newname, const QString &oldname); void sendHeartBeat(); - + void receiveHeartBeat(QIODevice *dev, const QVariantList ¶ms); + void receiveHeartBeatReply(QIODevice *dev, const QVariantList ¶ms); + signals: - void peerRemoved(QIODevice *obj); + void peerRemoved(QIODevice *dev); void connected(); void disconnected(); void objectInitialized(SyncableObject *); + void lagUpdated(int lag); private: + void init(); void initServer(); void initClient(); @@ -158,15 +163,20 @@ private: QVariantMap initData(SyncableObject *obj) const; void setInitData(SyncableObject *obj, const QVariantMap &properties); + void updateLag(QIODevice *dev, int lag); + public: void dumpSyncMap(SyncableObject *object); + inline int peerCount() const { return _peers.size(); } private: // Hash of used QIODevices struct peerInfo { quint32 byteCount; bool usesCompression; - peerInfo() : byteCount(0), usesCompression(false) {}; + int sentHeartBeats; + int lag; + peerInfo() : byteCount(0), usesCompression(false), sentHeartBeats(0) {} }; //QHash _peerByteCount; QHash _peers;