if (!peer->parent())
peer->setParent(this);
+ if (peer->_id < 0) {
+ peer->_id = nextPeerId();
+ peer->_connectedSince = QDateTime::currentDateTimeUtc();
+ }
+
_peers.insert(peer);
+ _peerMap[peer->_id] = peer;
peer->setSignalProxy(this);
disconnect(peer, 0, this, 0);
peer->setSignalProxy(0);
+ _peerMap.remove(peer->_id);
_peers.remove(peer);
emit peerRemoved(peer);
emit secureStateChanged(_secure);
}
+QVariantList SignalProxy::peerData() {
+ QVariantList result;
+ for (auto peer : _peers) {
+ QVariantMap data;
+ data["id"] = peer->_id;
+ data["clientVersion"] = peer->_clientVersion;
+ data["clientVersionDate"] = peer->_buildDate;
+ data["remoteAddress"] = peer->address();
+ data["connectedSince"] = peer->_connectedSince;
+ data["secure"] = peer->isSecure();
+ result << data;
+ }
+ return result;
+}
+
+Peer *SignalProxy::peerById(int peerId) {
+ return _peerMap[peerId];
+}
+
// ==================================================
// ExtendedMetaObject