void Mpris::checkConnection() { if (m_valid) { QDBusConnection::sessionBus().disconnect(m_service, mprisPath, dbusPropertiesInterface, QStringLiteral("PropertiesChanged"), this, SLOT(propertiesChanged(QString, QMap<QString, QVariant>, QStringList))); } DBusInterface iface(dbusService, QStringLiteral("/"), dbusService); if (!iface.isValid()) { return; } QDBusPendingCall call = iface.asyncCall(QStringLiteral("ListNames")); QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(call); watcher->connect(watcher, &QDBusPendingCallWatcher::finished, [this](QDBusPendingCallWatcher *watcher) { watcher->deleteLater(); QDBusPendingReply<QStringList> reply = *watcher; if (reply.isError()) { qDebug("Failed to get the list of DBus services."); } else { QStringList services = reply.value(); checkServices(services); } }); }
void BitcoinP2P::processPayload(vector<unique_ptr<Payload>> payloadVec) { for (auto&& payload : payloadVec) { switch (payload->type()) { case Payload_version: checkServices(move(payload)); returnVerack(); break; case Payload_verack: gotVerack(); break; case Payload_ping: replyPong(move(payload)); break; case Payload_inv: processInv(move(payload)); break; case Payload_getdata: processGetData(move(payload)); break; case Payload_tx: processGetTx(move(payload)); break; case Payload_reject: processReject(move(payload)); break; default: continue; } } }