Auf dieser Seite

QMqttTopicFilter Class

Die Klasse „QMqttTopicFilter“ stellt einen MQTT-Themenfilter dar. Mehr...

Header: #include <QMqttTopicFilter>
CMake: find_package(Qt6 REQUIRED COMPONENTS Mqtt)
target_link_libraries(mytarget PRIVATE Qt6::Mqtt)
qmake: QT += mqtt

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

Öffentliche Typen

enum MatchOption { NoMatchOption, WildcardsDontMatchDollarTopicMatchOption }
flags MatchOptions

Öffentliche Funktionen

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)

Ausführliche Beschreibung

QMqttTopicFilter ist ein schlanker Wrapper um ein ` QString `, der einen aussagekräftigen Datentyp für MQTT-Themenfilter bereitstellt. Neben den Vorteilen eines starken Typs, der unbeabsichtigten Missbrauch verhindert, bietet QMqttTopicFilter praktische Funktionen im Zusammenhang mit Themenfiltern wie ` isValid()` oder ` match()`.

Beispielsweise würde der folgende Code nicht kompiliert werden und eine mögliche unbeabsichtigte und sinnlose Übereinstimmung zweier Filter verhindern, insbesondere wenn die Variablennamen weniger aussagekräftig wären:

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

Die Benutzerfreundlichkeit wird dadurch jedoch nicht beeinträchtigt, da der folgende Codeausschnitt wie erwartet kompiliert wird und läuft:

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

Siehe auch QMqttTopicName.

Dokumentation zu Mitgliedstypen

enum QMqttTopicFilter::MatchOption
flags QMqttTopicFilter::MatchOptions

Dieser Enum-Wert enthält die Übereinstimmungsoptionen für den Themenfilter.

KonstanteWertBeschreibung
QMqttTopicFilter::NoMatchOption0x0000Es sind keine Übereinstimmungsoptionen festgelegt.
QMqttTopicFilter::WildcardsDontMatchDollarTopicMatchOption0x0001Ein Platzhalter am Anfang des Filters passt nicht auf einen Themennamen, der mit dem Dollarzeichen ($) beginnt.

Der Typ „MatchOptions“ ist ein typedef für QFlags<MatchOption>. Er speichert eine ODER-Kombination von MatchOption-Werten.

Dokumentation der Mitgliedsfunktionen

QMqttTopicFilter::QMqttTopicFilter(const QLatin1String &filter)

Erstellt einen neuen MQTT-Themenfilter mit dem angegebenen filter.

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

Erstellt einen neuen MQTT-Themenfilter mit dem angegebenen filter.

QMqttTopicFilter::QMqttTopicFilter(const QMqttTopicFilter &filter)

Erstellt einen neuen MQTT-Themenfilter als Kopie von „ filter “.

[noexcept] QMqttTopicFilter::~QMqttTopicFilter()

Löscht das Objekt „ QMqttTopicFilter “.

QString QMqttTopicFilter::filter() const

Gibt den Themenfilter zurück.

Siehe auch ` setFilter()`.

bool QMqttTopicFilter::isValid() const

Gibt „ true “ zurück, wenn der Themenfilter gemäß Abschnitt 4.7 des MQTT-Standards gültig ist, andernfalls „ false “.

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

Gibt „ true “ zurück, wenn der Themenfilter mit dem Themennamen „ name “ übereinstimmt und dabei die angegebene „ matchOptions “ berücksichtigt wird, andernfalls „ false “.

void QMqttTopicFilter::setFilter(const QString &filter)

Setzt den Themenfilter auf „ filter “.

Siehe auch filter().

QString QMqttTopicFilter::sharedSubscriptionName() const

Gibt den Namen einer Freigabe zurück, wenn der Themenfilter als freigegebenes Abonnement angegeben wurde. Das Format für freigegebene Abonnements lautet „ $share/sharename/topicfilter “.

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

Ersetzt den MQTT-Themenfilter „ other “ durch diesen MQTT-Themenfilter. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

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

Weist diesem Objekt den MQTT-Themenfilter „ filter “ zu und gibt eine Referenz auf die Kopie zurück.

Verwandte Nicht-Mitglieder

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

Gibt „ true “ zurück, wenn die Themenfilter „ lhs “ und „ rhs “ unterschiedlich sind; andernfalls wird „ false “ zurückgegeben.

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

Gibt „ true “ zurück, wenn der Themenfilter „ lhs “ lexikalisch kleiner ist als der Themenfilter „ rhs “; andernfalls wird „ false “ zurückgegeben.

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

Schreibt den Themenfilter filter in den Stream out und gibt eine Referenz auf den Stream zurück.

Siehe auch Format der QDataStream-Operatoren.

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

Gibt „ true “ zurück, wenn die Themenfilter „ lhs “ und „ rhs “ identisch sind; andernfalls wird „ false “ zurückgegeben.

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

Liest einen Themenfilter aus dem Stream „ in “ in „ filter “ ein und gibt eine Referenz auf den Stream zurück.

Siehe auch Format der QDataStream-Operatoren.

© 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.