Sur cette page

QMqttTopicFilter Class

La classe QMqttTopicFilter représente un filtre de sujet MQTT. En savoir plus...

En-tête : #include <QMqttTopicFilter>
CMake : find_package(Qt6 REQUIRED COMPONENTS Mqtt)
target_link_libraries(mytarget PRIVATE Qt6::Mqtt)
qmake : QT += mqtt

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

enum MatchOption { NoMatchOption, WildcardsDontMatchDollarTopicMatchOption }
flags MatchOptions

Fonctions publiques

QMqttTopicFilter(const QLatin1String &filter)
QMqttTopicFilter(const QString &filter = QString())
QMqttTopicFilter(const QMqttTopicFilter &filter)
~QMqttTopicFilter()
QString filter() const
bool isValid() const
bool match(const QMqttTopicName &name, QMqttTopicFilter::MatchOptions matchOptions = NoMatchOption) const
void setFilter(const QString &filter)
QString sharedSubscriptionName() const
void swap(QMqttTopicFilter &other)
QMqttTopicFilter &operator=(const QMqttTopicFilter &filter)
bool operator!=(const QMqttTopicFilter &lhs, const QMqttTopicFilter &rhs)
bool operator<(const QMqttTopicFilter &lhs, const QMqttTopicFilter &rhs)
QDataStream &operator<<(QDataStream &out, const QMqttTopicFilter &filter)
bool operator==(const QMqttTopicFilter &lhs, const QMqttTopicFilter &rhs)
QDataStream &operator>>(QDataStream &in, QMqttTopicFilter &filter)

Description détaillée

QMqttTopicFilter est un simple wrapper autour d’un QString, fournissant un type de données expressif pour les filtres de sujets MQTT. Outre les avantages liés à un typage fort empêchant toute utilisation abusive involontaire, QMqttTopicFilter fournit des fonctions pratiques liées aux filtres de sujets, telles que isValid() ou match().

Par exemple, le code suivant échouerait à la compilation et empêcherait une correspondance involontaire et dénuée de sens entre deux filtres, en particulier si les noms de variables étaient moins explicites :

QMqttTopicFilter globalFilter{"foo/#"};
QMqttTopicFilter specificFilter{"foo/bar"};
if (globalFilter.match(specificFilter)) {
    //...
}

La facilité d’utilisation n’en est toutefois pas affectée, puisque l’extrait de code suivant se compile et s’exécute comme prévu :

QMqttTopicFilter globalFilter{"foo/#"};
if (globalFilter.match("foo/bar")) {
    //...
}

Voir également QMqttTopicName.

Documentation sur les types de membres

enum QMqttTopicFilter::MatchOption
flags QMqttTopicFilter::MatchOptions

Cette valeur d'énumération contient les options de correspondance pour le filtre de sujet.

ConstanteValeurDescription
QMqttTopicFilter::NoMatchOption0x0000Aucune option de correspondance n’est définie.
QMqttTopicFilter::WildcardsDontMatchDollarTopicMatchOption0x0001Un caractère générique placé au début du filtre ne correspond pas à un nom de rubrique commençant par le signe dollar ($).

Le type MatchOptions est un typedef pour QFlags<MatchOption>. Il stocke une combinaison OU de valeurs MatchOption.

Documentation des fonctions membres

QMqttTopicFilter::QMqttTopicFilter(const QLatin1String &filter)

Crée un nouveau filtre de sujet MQTT avec l'filter spécifiée.

QMqttTopicFilter::QMqttTopicFilter(const QString &filter = QString())

Crée un nouveau filtre de sujet MQTT avec l'filter spécifiée.

QMqttTopicFilter::QMqttTopicFilter(const QMqttTopicFilter &filter)

Crée un nouveau filtre de sujet MQTT qui est une copie de filter.

[noexcept] QMqttTopicFilter::~QMqttTopicFilter()

Supprime l'objet « QMqttTopicFilter ».

QString QMqttTopicFilter::filter() const

Renvoie le filtre de sujet.

Voir aussi setFilter().

bool QMqttTopicFilter::isValid() const

Renvoie « true » si le filtre de sujet est valide conformément à la section 4.7 de la norme MQTT, ou « false » dans le cas contraire.

bool QMqttTopicFilter::match(const QMqttTopicName &name, QMqttTopicFilter::MatchOptions matchOptions = NoMatchOption) const

Renvoie « true » si le filtre de sujet correspond au nom de sujet « name » en respectant l'matchOptions spécifiée, ou « false » dans le cas contraire.

void QMqttTopicFilter::setFilter(const QString &filter)

Définit le filtre de sujets sur « filter ».

Voir également filter().

QString QMqttTopicFilter::sharedSubscriptionName() const

Renvoie le nom d'un partage si le filtre de sujet a été spécifié sous la forme d'un abonnement partagé. Le format des abonnements partagés est défini comme suit : $share/sharename/topicfilter.

[noexcept] void QMqttTopicFilter::swap(QMqttTopicFilter &other)

Remplace le filtre de sujet MQTT « other » par ce filtre de sujet MQTT. Cette opération est très rapide et ne rencontre jamais d'échec.

QMqttTopicFilter &QMqttTopicFilter::operator=(const QMqttTopicFilter &filter)

Attribue le filtre de sujet MQTT « filter » à cet objet et renvoie une référence à la copie.

Éléments non membres associés

[noexcept] bool operator!=(const QMqttTopicFilter &lhs, const QMqttTopicFilter &rhs)

Renvoie « true » si les filtres de sujet « lhs » et « rhs » sont différents ; sinon, renvoie « false ».

[noexcept] bool operator<(const QMqttTopicFilter &lhs, const QMqttTopicFilter &rhs)

Renvoie « true » si le filtre de sujet lhs est lexicalement inférieur au filtre de sujet rhs; sinon, renvoie « false ».

QDataStream &operator<<(QDataStream &out, const QMqttTopicFilter &filter)

Écrit le filtre de sujet filter dans le flux out et renvoie une référence à ce flux.

Voir également Format des opérateurs QDataStream.

[noexcept] bool operator==(const QMqttTopicFilter &lhs, const QMqttTopicFilter &rhs)

Renvoie « true » si les filtres de sujet « lhs » et « rhs » sont identiques ; sinon, renvoie « false ».

QDataStream &operator>>(QDataStream &in, QMqttTopicFilter &filter)

Lit un filtre de sujet dans ` filter ` à partir du flux ` in ` et renvoie une référence à ce flux.

Voir également Format des opérateurs QDataStream.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.