MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / onStateChanged

Method onStateChanged

app/src/IO/Drivers/MQTT.cpp:882–906  ·  view source on GitHub ↗

* @brief Handles broker state transitions; subscribes once Connected. */

Source from the content-addressed store, hash-verified

880 * @brief Handles broker state transitions; subscribes once Connected.
881 */
882void IO::Drivers::MQTT::onStateChanged(QMqttClient::ClientState state)
883{
884 qCInfo(lcMqttSub) << "state changed:" << state;
885 Q_EMIT connectedChanged();
886
887 if (state == QMqttClient::Connected && !m_topicFilter.isEmpty()) {
888 QMqttTopicFilter filter;
889 filter.setFilter(m_topicFilter);
890
891 auto* sub = m_client.subscribe(filter, 0);
892 if (!sub || sub->state() == QMqttSubscription::Error) {
893 qCCritical(lcMqttSub) << "subscribe failed for filter" << m_topicFilter;
894 Misc::Utilities::showMessageBox(tr("MQTT Subscription Error"),
895 tr("Failed to subscribe to topic \"%1\".").arg(m_topicFilter),
896 QMessageBox::Critical);
897 return;
898 }
899
900 qCInfo(lcMqttSub) << "subscribed to" << m_topicFilter << "initial state:" << sub->state();
901 connect(
902 sub, &QMqttSubscription::stateChanged, this, [this](QMqttSubscription::SubscriptionState s) {
903 qCInfo(lcMqttSub) << "subscription state for" << m_topicFilter << "->" << s;
904 });
905 }
906}
907
908/**
909 * @brief Surfaces broker errors to the user.

Callers

nothing calls this directly

Calls 3

isEmptyMethod · 0.80
setFilterMethod · 0.80
subscribeMethod · 0.80

Tested by

no test coverage detected