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
std::shared_ptr< MQTTClient > Ptr
Definition: mqtt_client.h:18
std::function< void(const mosquitto_message *)> TopicCallback
Definition: mqtt_client.h:29
std::unordered_map< std::string, TopicCallback > _message_callbacks
Definition: mqtt_client.h:50
bool isConnected() const
void addMessageCallback(const std::string &topic, TopicCallback callback)
void disconnect()
std::mutex _mutex
Definition: mqtt_client.h:52
std::unordered_set< std::string > getTopicList()
void subscribe(const std::string &topic, int qos)
bool connect(const MosquittoConfig &config)
Definition: mqtt_client.cpp:68
const MosquittoConfig & config() const
std::unordered_set< std::string > _topics_set
Definition: mqtt_client.h:51
void onMessageReceived(const mosquitto_message *message)
void unsubscribe(const std::string &topic)
MosquittoConfig _config
Definition: mqtt_client.h:53
void disconnected()
bool _connected
Definition: mqtt_client.h:32
mosquitto * _mosq
Definition: mqtt_client.h:49


plotjuggler
Author(s): Davide Faconti
autogenerated on Mon Jun 19 2023 03:01:38