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 ().

[since 5.12] 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 运算符格式 .