RpcCall,
InitRequest,
InitData,
- HeartBeat
+ HeartBeat,
+ HeartBeatReply
};
SignalProxy(QObject *parent);
virtual ~SignalProxy();
void setProxyMode(ProxyMode mode);
- ProxyMode proxyMode() const;
+ inline ProxyMode proxyMode() const { return _proxyMode; }
bool addPeer(QIODevice *iodev);
void removePeer(QIODevice *iodev = 0);
void synchronize(SyncableObject *obj);
- void setInitialized(SyncableObject *obj);
- bool isInitialized(SyncableObject *obj) const;
+// void setInitialized(SyncableObject *obj);
+// bool isInitialized(SyncableObject *obj) const;
void requestInit(SyncableObject *obj);
void detachObject(QObject *obj);
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();
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<QIODevice*, peerInfo> _peerByteCount;
QHash<QIODevice*, peerInfo> _peers;