12 const mosquitto_property*)
18 for (
const auto&
topic : self->config().topics)
20 mosquitto_subscribe(mosq,
nullptr,
topic.c_str(), self->config().qos);
26 nullptr,
"MQTT Client",
27 QString(
"Connection error: %1").
arg(mosquitto_reason_string(result)),
30 self->_connected =
true;
37 if (self->isConnected() && result == MOSQ_ERR_CONN_LOST)
44 const struct mosquitto_message* message,
const mosquitto_property*)
55 _mosq = mosquitto_new(
nullptr,
true,
this);
68 mosquitto_lib_cleanup();
95 mosquitto_tls_set(
_mosq, cafile,
nullptr, certfile, keyfile,
nullptr);
100 const mosquitto_property* properties =
nullptr;
107 if (rc == MOSQ_ERR_ERRNO)
111 strerror_r(errno, err, 1024);
113 FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, errno, 0, (LPTSTR)&err, 1024, NULL);
115 QMessageBox::warning(
nullptr,
"MQTT Client", QString(
"Error: %1").
arg(err),
120 QMessageBox::warning(
nullptr,
"MQTT Client",
121 QString(
"Unable to connect (%1)").
arg(mosquitto_strerror(rc)),
130 mosquitto_loop_start(
_mosq);
138 mosquitto_disconnect(
_mosq);
139 mosquitto_loop_stop(
_mosq,
true);
154 std::unique_lock<std::mutex> lk(
_mutex);
160 std::unique_lock<std::mutex> lk(
_mutex);
178 std::unique_lock<std::mutex> lk(
_mutex);
184 mosquitto_subscribe(
_mosq,
nullptr,
topic.c_str(), qos);
189 mosquitto_unsubscribe(
_mosq,
nullptr,
topic.c_str());