QMqttTopicFilter Class
Die Klasse QMqttTopicFilter stellt einen MQTT-Topic-Filter dar. Mehr...
Kopfzeile: | #include <QMqttTopicFilter> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Mqtt) target_link_libraries(mytarget PRIVATE Qt6::Mqtt) |
qmake: | QT += mqtt |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QMqttTopicFilter ist Teil von Implicitly Shared Classes.
Hinweis: Alle Funktionen in 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) |
Verwandte Nicht-Mitglieder
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) |
Detaillierte Beschreibung
QMqttTopicFilter ist ein dünner Wrapper um QString, der einen aussagekräftigen Datentyp für MQTT-Topic-Filter bereitstellt. Neben den Vorteilen eines starken Typs, der unbeabsichtigten Missbrauch verhindert, bietet QMqttTopicFilter praktische Funktionen für Themenfilter wie isValid() oder match().
Der folgende Code würde beispielsweise nicht kompiliert werden und eine mögliche unbeabsichtigte und sinnlose Verknüpfung von zwei Filtern verhindern, insbesondere wenn die Variablennamen weniger ausdrucksstark wären:
QMqttTopicFilter globalFilter{"foo/#"}; QMqttTopicFilter specificFilter{"foo/bar"}; if (globalFilter.match(specificFilter)) { //... }
Die Benutzerfreundlichkeit wird jedoch nicht beeinträchtigt, da der folgende Codeausschnitt wie erwartet kompiliert und ausgeführt wird:
QMqttTopicFilter globalFilter{"foo/#"}; if (globalFilter.match("foo/bar")) { //... }
Siehe auch QMqttTopicName.
Dokumentation der Membertypen
enum QMqttTopicFilter::MatchOption
flags QMqttTopicFilter::MatchOptions
Dieser Enum-Wert enthält die Anpassungsoptionen für den Themenfilter.
Konstante | Wert | Beschreibung |
---|---|---|
QMqttTopicFilter::NoMatchOption | 0x0000 | Es sind keine Übereinstimmungsoptionen gesetzt. |
QMqttTopicFilter::WildcardsDontMatchDollarTopicMatchOption | 0x0001 | Ein Platzhalter am Anfang des Filters passt nicht zu einem Themennamen, der mit einem Dollarzeichen ($) beginnt. |
Der Typ MatchOptions ist ein Typedef für QFlags<MatchOption>. Er speichert eine OR-Kombination von MatchOption-Werten.
Dokumentation der Mitgliedsfunktionen
QMqttTopicFilter::QMqttTopicFilter(const QLatin1String &filter)
Erzeugt einen neuen MQTT-Topic-Filter mit dem angegebenen filter.
QMqttTopicFilter::QMqttTopicFilter(const QString &filter = QString())
Erzeugt einen neuen MQTT-Topic-Filter mit dem angegebenen filter.
QMqttTopicFilter::QMqttTopicFilter(const QMqttTopicFilter &filter)
Erzeugt einen neuen MQTT-Topic-Filter als Kopie von filter.
[noexcept]
QMqttTopicFilter::~QMqttTopicFilter()
Zerstört 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 Topic-Filter gemäß dem MQTT-Standard, Abschnitt 4.7, 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 den angegebenen matchOptions berücksichtigt, oder 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 gemeinsames Abonnement angegeben wurde. Das Format von gemeinsamen Abonnements ist als $share/sharename/topicfilter
definiert.
[noexcept]
void QMqttTopicFilter::swap(QMqttTopicFilter &other)
Tauscht den MQTT-Themenfilter other mit diesem MQTT-Themenfilter aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
QMqttTopicFilter &QMqttTopicFilter::operator=(const QMqttTopicFilter &filter)
Weist diesem Objekt den MQTT-Themenfilter filter zu und gibt einen Verweis 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, ansonsten false
.
[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 gleich sind, andernfalls gibt es false
zurück.
QDataStream &operator>>(QDataStream &in, QMqttTopicFilter &filter)
Liest einen Themenfilter in filter aus dem Stream in und gibt eine Referenz auf den Stream zurück.
Siehe auch Format der QDataStream-Operatoren.
© 2025 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.