QMqttTopicFilter Class

The QMqttTopicFilter class represents a MQTT topic filter. 更多...

頭: #include <QMqttTopicFilter>
qmake: QT += mqtt

注意: 此類的所有函數 可重入 .

公共類型

enum MatchOption { NoMatchOption, WildcardsDontMatchDollarTopicMatchOption }
flags MatchOptions

公共函數

QMqttTopicFilter (const QMqttTopicFilter & filter )
QMqttTopicFilter (const QLatin1String & filter )
QMqttTopicFilter (const QString & filter = QString())
QMqttTopicFilter & operator= (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 )
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 )

詳細描述

QMqttTopicFilter is a thin wrapper around a QString providing an expressive data type for MQTT topic filters. Beside the benefits of having a strong type preventing unintended misuse, QMqttTopicFilter provides convenient functions related to topic filters like isValid () 或 match ().

For example, the following code would fail to compile and prevent a possible unintended and meaningless matching of two filters, especially if the variable names were less expressive:

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

The usability, however, is not affected since the following snippet compiles and runs as expected:

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

另請參閱 QMqttTopicName .

成員類型文檔編製

enum QMqttTopicFilter:: MatchOption
flags QMqttTopicFilter:: MatchOptions

This enum value holds the matching options for the topic filter.

常量 描述
QMqttTopicFilter::NoMatchOption 0x0000 No match options are set.
QMqttTopicFilter::WildcardsDontMatchDollarTopicMatchOption 0x0001 A wildcard at the filter's beginning does not match a topic name that starts with the dollar sign ($).

The MatchOptions type is a typedef for QFlags <MatchOption>. It stores an OR combination of MatchOption values.

成員函數文檔編製

QMqttTopicFilter:: QMqttTopicFilter (const QMqttTopicFilter & filter )

Creates a new MQTT topic filter as a copy of filter .

QMqttTopicFilter:: QMqttTopicFilter (const QLatin1String & filter )

Creates a new MQTT topic filter with the specified filter .

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

Creates a new MQTT topic filter with the specified filter .

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

Assigns the MQTT topic filter filter to this object, and returns a reference to the copy.

QMqttTopicFilter:: ~QMqttTopicFilter ()

銷毀 QMqttTopicFilter 對象。

QString QMqttTopicFilter:: filter () const

Returns the topic filter.

另請參閱 setFilter ().

bool QMqttTopicFilter:: isValid () const

返迴 true if the topic filter is valid according to the MQTT standard section 4.7, or false 否則。

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

返迴 true if the topic filter matches the topic name name honoring the given matchOptions ,或 false 否則。

void QMqttTopicFilter:: setFilter (const QString & filter )

Sets the topic filter to filter .

另請參閱 filter ().

QString QMqttTopicFilter:: sharedSubscriptionName () const

Returns the name of a share if the topic filter has been specified as a shared subscription. The format of shared subscriptions is defined as $share/sharename/topicfilter .

該函數在 Qt 5.12 引入。

void QMqttTopicFilter:: swap ( QMqttTopicFilter & other )

Swaps the MQTT topic filter other with this MQTT topic filter. This operation is very fast and never fails.

相關非成員

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

返迴 true if the topic filters lhs and rhs 不同,否則返迴 false .

bool operator< (const QMqttTopicFilter & lhs , const QMqttTopicFilter & rhs )

返迴 true if the topic filter lhs is lexically less than the topic filter rhs ;否則返迴 false .

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

Writes the topic filter filter 到流 out 並返迴流引用。

另請參閱 QDataStream 運算符格式 .

bool operator== (const QMqttTopicFilter & lhs , const QMqttTopicFilter & rhs )

返迴 true if the topic filters lhs and rhs 相等,否則返迴 false .

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

Reads a topic filter into filter 從流 in 並返迴流引用。

另請參閱 QDataStream 運算符格式 .