1
0
mirror of https://github.com/qt/qtmqtt.git synced 2026-10-25 16:16:26 +00:00
qtmqtt/src/mqtt/qmqttsubscription.h
Jani Heikkinen ebd3d87293 Replace Q_ENUMS with Q_ENUM
Amends ea3dc64d3f,
7467bbdc84, and
ea0d792a44 (all before 6.0).

Fixes: QTBUG-148625
Pick-to: 6.12 6.11 6.8
Change-Id: I2f9b24f7e32d437cce258dfdce0d669c8d2638e1
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
2026-07-29 11:40:44 +00:00

75 lines
2.2 KiB
C++

// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
// Qt-Security score:significant reason:default
#ifndef QMQTTSUBSCRIPTION_H
#define QMQTTSUBSCRIPTION_H
#include <QtMqtt/qmqttglobal.h>
#include <QtMqtt/qmqttmessage.h>
#include <QtMqtt/qmqtttopicfilter.h>
#include <QtCore/QObject>
QT_BEGIN_NAMESPACE
class QMqttClient;
class QMqttSubscriptionPrivate;
class Q_MQTT_EXPORT QMqttSubscription : public QObject
{
Q_OBJECT
Q_PROPERTY(SubscriptionState state READ state NOTIFY stateChanged)
Q_PROPERTY(quint8 qos READ qos NOTIFY qosChanged)
Q_PROPERTY(QMqttTopicFilter topic READ topic)
Q_PROPERTY(QString reason READ reason)
Q_PROPERTY(QMqtt::ReasonCode reasonCode READ reasonCode)
Q_PROPERTY(bool sharedSubscription READ isSharedSubscription)
Q_PROPERTY(QString sharedSubscriptionName READ sharedSubscriptionName)
public:
~QMqttSubscription() override;
enum SubscriptionState {
Unsubscribed = 0,
SubscriptionPending,
Subscribed,
UnsubscriptionPending,
Error
};
Q_ENUM(SubscriptionState)
SubscriptionState state() const;
QMqttTopicFilter topic() const;
quint8 qos() const;
QString reason() const;
QMqtt::ReasonCode reasonCode() const;
QMqttUserProperties userProperties() const;
bool isSharedSubscription() const;
QString sharedSubscriptionName() const;
Q_SIGNALS:
void stateChanged(SubscriptionState state);
void qosChanged(quint8); // only emitted when broker provides different QoS than requested
void messageReceived(QMqttMessage msg);
public Q_SLOTS:
void unsubscribe();
private:
Q_DECLARE_PRIVATE(QMqttSubscription)
Q_DISABLE_COPY(QMqttSubscription)
void setState(SubscriptionState state);
void setTopic(const QMqttTopicFilter &topic);
void setClient(QMqttClient *client);
void setQos(quint8 qos);
void setSharedSubscription(bool s);
void setSharedSubscriptionName(const QString &name);
friend class QMqttConnection;
friend class QMqttClient;
explicit QMqttSubscription(QObject *parent = nullptr);
};
QT_END_NAMESPACE
#endif // QMQTTSUBSCRIPTION_H