File indexing completed on 2024-05-12 03:47:43

0001 /*
0002     File        : MQTTSubscription.h
0003     Project     : LabPlot
0004     Description : Represents a subscription made in MQTTClient
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2018 Kovacs Ferencz <kferike98@gmail.com>
0007 
0008     SPDX-License-Identifier: GPL-2.0-or-later
0009 */
0010 
0011 #ifndef MQTTSUBSCRIPTION_H
0012 #define MQTTSUBSCRIPTION_H
0013 
0014 #include "backend/core/Folder.h"
0015 
0016 class MQTTClient;
0017 class MQTTTopic;
0018 class QString;
0019 
0020 class MQTTSubscription : public Folder {
0021     Q_OBJECT
0022 
0023 public:
0024     explicit MQTTSubscription(const QString& name);
0025     ~MQTTSubscription() override;
0026 
0027     void setMQTTClient(MQTTClient*);
0028     QString subscriptionName() const;
0029     const QVector<MQTTTopic*> topics() const;
0030     MQTTClient* mqttClient() const;
0031     void messageArrived(const QString&, const QString&);
0032 
0033     QIcon icon() const override;
0034     void save(QXmlStreamWriter*) const override;
0035     bool load(XmlStreamReader*, bool preview) override;
0036 
0037 private:
0038     QString m_subscriptionName;
0039     MQTTClient* m_MQTTClient{nullptr};
0040 
0041 Q_SIGNALS:
0042     void loaded(const QString&);
0043 };
0044 
0045 #endif // MQTTSUBSCRIPTION_H