* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
+#include <utility>
+
#include <QCoreApplication>
#include <QHostAddress>
#include <QMetaMethod>
SignalRelay(SignalProxy *parent) : QObject(parent), _proxy(parent) {}
inline SignalProxy *proxy() const { return _proxy; }
- int qt_metacall(QMetaObject::Call _c, int _id, void **_a);
+ int qt_metacall(QMetaObject::Call _c, int _id, void **_a) override;
void attachSignal(QObject *sender, int signalId, const QByteArray &funcName);
void detachSignal(QObject *sender, int signalId = -1);
private:
struct Signal {
- QObject *sender;
- int signalId;
+ QObject *sender{nullptr};
+ int signalId{-1};
QByteArray signature;
- Signal(QObject *sender, int sigId, const QByteArray &signature) : sender(sender), signalId(sigId), signature(signature) {}
- Signal() : sender(0), signalId(-1) {}
+ Signal(QObject *sender, int sigId, QByteArray signature) : sender(sender), signalId(sigId), signature(std::move(signature)) {}
+ Signal() = default;
};
SignalProxy *_proxy;
// SignalProxy
// ==================================================
-thread_local SignalProxy *SignalProxy::_current{nullptr};
+namespace {
+thread_local SignalProxy *_current{nullptr};
+}
SignalProxy::SignalProxy(QObject *parent)
: QObject(parent)
}
+SignalProxy *SignalProxy::current()
+{
+ return _current;
+}
+
+
void SignalProxy::setProxyMode(ProxyMode mode)
{
if (!_peerMap.empty()) {
qWarning("SignalProxy: only one peer allowed in client mode!");
return false;
}
- connect(peer, SIGNAL(lagUpdated(int)), SIGNAL(lagUpdated(int)));
+ connect(peer, &Peer::lagUpdated, this, &SignalProxy::lagUpdated);
}
- connect(peer, SIGNAL(disconnected()), SLOT(removePeerBySender()));
- connect(peer, SIGNAL(secureStateChanged(bool)), SLOT(updateSecureState()));
+ connect(peer, &Peer::disconnected, this, &SignalProxy::removePeerBySender);
+ connect(peer, &Peer::secureStateChanged, this, &SignalProxy::updateSecureState);
if (!peer->parent())
peer->setParent(this);
return;
}
- disconnect(peer, 0, this, 0);
- peer->setSignalProxy(0);
+ disconnect(peer, nullptr, this, nullptr);
+ peer->setSignalProxy(nullptr);
_peerMap.remove(peer->id());
emit peerRemoved(peer);
const QMetaObject *SignalProxy::metaObject(const QObject *obj)
{
- if (const SyncableObject *syncObject = qobject_cast<const SyncableObject *>(obj))
+ if (const auto *syncObject = qobject_cast<const SyncableObject *>(obj))
return syncObject->syncMetaObject();
else
return obj->metaObject();
if (_extendedMetaObjects.contains(meta))
return _extendedMetaObjects[meta];
else
- return 0;
+ return nullptr;
}
createExtendedMetaObject(meta);
_signalRelay->attachSignal(sender, methodId, sigName);
- disconnect(sender, SIGNAL(destroyed(QObject *)), this, SLOT(detachObject(QObject *)));
- connect(sender, SIGNAL(destroyed(QObject *)), this, SLOT(detachObject(QObject *)));
+ disconnect(sender, &QObject::destroyed, this, &SignalProxy::detachObject);
+ connect(sender, &QObject::destroyed, this, &SignalProxy::detachObject);
return true;
}
QByteArray funcName = QMetaObject::normalizedSignature(sigName.constData());
_attachedSlots.insert(funcName, qMakePair(recv, methodId));
- disconnect(recv, SIGNAL(destroyed(QObject *)), this, SLOT(detachObject(QObject *)));
- connect(recv, SIGNAL(destroyed(QObject *)), this, SLOT(detachObject(QObject *)));
+ disconnect(recv, &QObject::destroyed, this, &SignalProxy::detachObject);
+ connect(recv, &QObject::destroyed, this, &SignalProxy::detachObject);
return true;
}
return false;
}
- void *_a[] = { 0, // return type...
- 0, 0, 0, 0, 0, // and 10 args - that's the max size qt can handle with signals and slots
- 0, 0, 0, 0, 0 };
+ void *_a[] = { nullptr, // return type...
+ nullptr, nullptr, nullptr, nullptr, nullptr, // and 10 args - that's the max size qt can handle with signals and slots
+ nullptr, nullptr, nullptr, nullptr, nullptr };
// check for argument compatibility and build params array
for (int i = 0; i < numArgs; i++) {
{
switch ((int)event->type()) {
case RemovePeerEvent: {
- ::RemovePeerEvent *e = static_cast< ::RemovePeerEvent *>(event);
+ auto *e = static_cast< ::RemovePeerEvent *>(event);
removePeer(e->peer);
event->accept();
break;
{
if (!reason.isEmpty())
qWarning() << qPrintable(reason);
- QAbstractSocket *sock = qobject_cast<QAbstractSocket *>(dev);
+ auto *sock = qobject_cast<QAbstractSocket *>(dev);
if (sock)
qWarning() << qPrintable(tr("Disconnecting")) << qPrintable(sock->peerAddress().toString());
dev->close();