}
SignalProxy::~SignalProxy() {
- QList<SyncableObject *> syncObjects;
QHash<QByteArray, ObjectId>::iterator classIter = _syncSlave.begin();
while(classIter != _syncSlave.end()) {
- syncObjects << classIter->values();
+ ObjectId::iterator objIter = classIter->begin();
+ while(objIter != classIter->end()) {
+ SyncableObject *obj = objIter.value();
+ objIter = classIter->erase(objIter);
+ obj->stopSynchronize(this);
+ }
classIter++;
}
_syncSlave.clear();
- foreach(SyncableObject *obj, syncObjects) {
- obj->stopSynchronize(this);
- }
removeAllPeers();
}
}
void SignalProxy::objectRenamed(const QByteArray &classname, const QString &newname, const QString &oldname) {
- qDebug() << "SignalProxy::objectRenamed" << classname << newname << oldname;
- if(proxyMode() == Server)
- return;
-
if(_syncSlave.contains(classname) && _syncSlave[classname].contains(oldname) && oldname != newname) {
SyncableObject *obj = _syncSlave[classname][newname] = _syncSlave[classname].take(oldname);
requestInit(obj);
void SignalProxy::sendHeartBeat() {
QVariantList heartBeatParams;
heartBeatParams << QTime::currentTime();
+ QList<IODevicePeer *> toClose;
+
PeerHash::iterator peer = _peers.begin();
while(peer != _peers.end()) {
if((*peer)->type() == AbstractPeer::IODevicePeer) {
if(ioPeer->sentHeartBeats > 0) {
updateLag(ioPeer, ioPeer->sentHeartBeats * _heartBeatTimer.interval());
}
- if(ioPeer->sentHeartBeats > 1) {
- qWarning() << "SignalProxy: Disconnecting peer:" << ioPeer->address()
- << "(didn't receive a heartbeat for over" << ioPeer->sentHeartBeats * _heartBeatTimer.interval() / 1000 << "seconds)";
- ioPeer->close();
- } else {
+ if(ioPeer->sentHeartBeats > 1)
+ toClose.append(ioPeer);
+ else
ioPeer->sentHeartBeats++;
- }
}
- peer++;
+ ++peer;
+ }
+
+ foreach(IODevicePeer *ioPeer, toClose) {
+ qWarning() << "SignalProxy: Disconnecting peer:" << ioPeer->address()
+ << "(didn't receive a heartbeat for over" << ioPeer->sentHeartBeats * _heartBeatTimer.interval() / 1000 << "seconds)";
+ ioPeer->close();
}
}
if(receiverId != -1) {
receiveMap[i] = receiverId;
- qDebug() << requestSlot.signature() << _meta->method(receiverId).signature() << "---" << i << receiverId;
}
}
_receiveMap = receiveMap;