void ApplicationLauncher::unsyncStatus() { m_synced = false; emit syncedChanged(m_synced); initializeObject(); emit launchersChanged(); }
void ApplicationLauncher::handleLauncherFullUpdateMessage(const QByteArray &topic, const Container &rx) { Q_UNUSED(topic); initializeObject(); // clear old value MachinetalkService::recurseMessage(rx, m_launcherObject, m_temporaryDir->path(), QStringLiteral("launcher")); emit launchersChanged(); }
/** Processes all message received on the update 0MQ socket */ void QApplicationLauncher::subscribeMessageReceived(QList<QByteArray> messageList) { QByteArray topic; topic = messageList.at(0); m_rx.ParseFromArray(messageList.at(1).data(), messageList.at(1).size()); #ifdef QT_DEBUG std::string s; gpb::TextFormat::PrintToString(m_rx, &s); DEBUG_TAG(3, m_commandIdentity, "launcher update" << topic << QString::fromStdString(s)) #endif if (m_rx.type() == pb::MT_LAUNCHER_FULL_UPDATE) //value update { m_launchers = QJsonValue(QJsonArray()); // clear old value Service::updateValue(m_rx, &m_launchers, "launcher", "launcher"); // launcher protobuf value, launcher temp path emit launchersChanged(m_launchers); if (m_subscribeSocketState != Service::Up) { m_subscribeSocketState = Service::Up; updateState(Service::Connected); } updateSync(); if (m_rx.has_pparams()) { pb::ProtocolParameters pparams = m_rx.pparams(); startSubscribeHeartbeat(pparams.keepalive_timer() * 2); // wait double the time of the hearbeat interval } } else if (m_rx.type() == pb::MT_LAUNCHER_INCREMENTAL_UPDATE){ Service::updateValue(m_rx, &m_launchers, "launcher", "launcher"); // launcher protobuf value, launcher temp path emit launchersChanged(m_launchers); refreshSubscribeHeartbeat(); } else if (m_rx.type() == pb::MT_PING) { if (m_subscribeSocketState == Service::Up) { refreshSubscribeHeartbeat(); } else { updateState(Service::Connecting); unsubscribe("launcher"); // clean up previous subscription subscribe("launcher"); // trigger a fresh subscribe -> full update } } else if (m_rx.type() == pb::MT_LAUNCHER_ERROR) { QString errorString; for (int i = 0; i < m_rx.note_size(); ++i) { errorString.append(QString::fromStdString(m_rx.note(i)) + "\n"); } m_subscribeSocketState = Service::Down; updateState(Service::Error, Service::CommandError, errorString); #ifdef QT_DEBUG DEBUG_TAG(1, m_commandIdentity, "proto error on subscribe" << errorString) #endif }