mqtt_client.h
Go to the documentation of this file.
1 #ifndef MQTT_CLIENT_H
2 #define MQTT_CLIENT_H
3 
4 #include "mosquitto_config.h"
5 #include <string>
6 #include <functional>
7 #include <unordered_map>
8 #include <unordered_set>
9 #include <mutex>
10 #include <memory>
11 #include <QObject>
12 
13 class MQTTClient : public QObject
14 {
15  Q_OBJECT
16 
17 public:
18  using Ptr = std::shared_ptr<MQTTClient>;
19 
20  MQTTClient();
21  ~MQTTClient();
22 
23  bool connect(const MosquittoConfig& config);
24 
25  void disconnect();
26 
27  bool isConnected() const;
28 
29  using TopicCallback = std::function<void(const mosquitto_message*)>;
30  void addMessageCallback(const std::string& topic, TopicCallback callback);
31 
32  bool _connected = false;
33 
34  void onMessageReceived(const mosquitto_message* message);
35 
36  const MosquittoConfig& config() const;
37 
38  std::unordered_set<std::string> getTopicList();
39 
40  void subscribe(const std::string& topic, int qos);
41 
42  void unsubscribe(const std::string& topic);
43 
44 signals:
45 
46  void disconnected();
47 
48 private:
49  mosquitto* _mosq = nullptr;
50  std::unordered_map<std::string, TopicCallback> _message_callbacks;
51  std::unordered_set<std::string> _topics_set;
52  std::mutex _mutex;
54 };
55 
56 #endif // MQTT_CLIENT_H
MQTTClient::subscribe
void subscribe(const std::string &topic, int qos)
Definition: mqtt_client.cpp:182
MQTTClient::connect
bool connect(const MosquittoConfig &config)
Definition: mqtt_client.cpp:71
MQTTClient::onMessageReceived
void onMessageReceived(const mosquitto_message *message)
Definition: mqtt_client.cpp:158
MQTTClient::disconnect
void disconnect()
Definition: mqtt_client.cpp:134
MQTTClient::MQTTClient
MQTTClient()
Definition: mqtt_client.cpp:52
MQTTClient::TopicCallback
std::function< void(const mosquitto_message *)> TopicCallback
Definition: mqtt_client.h:29
MQTTClient
Definition: mqtt_client.h:13
MQTTClient::config
const MosquittoConfig & config() const
Definition: mqtt_client.cpp:171
MQTTClient::_connected
bool _connected
Definition: mqtt_client.h:32
MQTTClient::_topics_set
std::unordered_set< std::string > _topics_set
Definition: mqtt_client.h:51
mosquitto_config.h
MQTTClient::_config
MosquittoConfig _config
Definition: mqtt_client.h:53
start_test_publisher.topic
topic
Definition: start_test_publisher.py:22
MQTTClient::unsubscribe
void unsubscribe(const std::string &topic)
Definition: mqtt_client.cpp:187
MosquittoConfig
Definition: mosquitto_config.h:8
nlohmann::detail::void
j template void())
Definition: json.hpp:4061
MQTTClient::disconnected
void disconnected()
MQTTClient::_message_callbacks
std::unordered_map< std::string, TopicCallback > _message_callbacks
Definition: mqtt_client.h:50
MQTTClient::~MQTTClient
~MQTTClient()
Definition: mqtt_client.cpp:62
MQTTClient::Ptr
std::shared_ptr< MQTTClient > Ptr
Definition: mqtt_client.h:18
MQTTClient::_mosq
mosquitto * _mosq
Definition: mqtt_client.h:49
MQTTClient::isConnected
bool isConnected() const
Definition: mqtt_client.cpp:146
MQTTClient::addMessageCallback
void addMessageCallback(const std::string &topic, TopicCallback callback)
Definition: mqtt_client.cpp:151
MQTTClient::_mutex
std::mutex _mutex
Definition: mqtt_client.h:52
MQTTClient::getTopicList
std::unordered_set< std::string > getTopicList()
Definition: mqtt_client.cpp:176


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Aug 11 2024 02:24:23