Go to the documentation of this file.
28 #include "nlohmann/json.hpp"
31 #include "mqtt/async_client.h"
33 #define MQTT_BASE "nrp_simulation"
37 const auto TIMEOUT = std::chrono::seconds(10);
44 void message_arrived(mqtt::const_message_ptr msg)
override;
67 virtual void subscribe(
const std::string& address,
const std::function<
void (
const std::string&)>& callback);
72 virtual void publish(
const std::string& address,
const std::string& msg,
bool retained=
false);
77 void publishDirect(
const std::string& address,
const std::string& msg);
99 std::shared_ptr< mqtt::async_client> _mqttClient;
104 std::map<std::string, mqtt::topic> _topics;
109 std::map<std::string, std::function<void (
const std::string&)>> _subscribers;
119 #endif //MQTT_CLIENT_H
virtual bool isConnected()
Check connection status to broker.
Definition: nrp_mqtt_client.cpp:26
NRPMQTTClient * _proxy
Definition: nrp_mqtt_client.h:49
Definition: nrp_mqtt_client.h:43
const auto TIMEOUT
Definition: nrp_mqtt_client.h:37
Definition: nrp_mqtt_client.h:52
MQTTCallback(NRPMQTTClient *proxy)
Definition: nrp_mqtt_client.cpp:130
void publishDirect(const std::string &address, const std::string &msg)
Publishes 'msg' directly to subscriber callbacks, without going through the MQTT broker....
Definition: nrp_mqtt_client.cpp:55
virtual void disconnect()
Disconnects client from MQTT Broker.
Definition: nrp_mqtt_client.cpp:104
const int QOS
Definition: nrp_mqtt_client.h:36
virtual ~NRPMQTTClient()=default
virtual void subscribe(const std::string &address, const std::function< void(const std::string &)> &callback)
Subscribe to MQTT topic 'address' with callback function 'callback'.
Definition: nrp_mqtt_client.cpp:61
virtual void publish(const std::string &address, const std::string &msg, bool retained=false)
Publishes 'msg' to MQTT topic 'address'.
Definition: nrp_mqtt_client.cpp:38
virtual void clearRetained()
Clear all topics with retain messages by sending an empty msg.
Definition: nrp_mqtt_client.cpp:117
NRPMQTTClient()
Definition: nrp_mqtt_client.cpp:100
nlohmann::json json
Definition: engine_json_server.cpp:31