QMqttTopicFilter 类
QMqttTopicFilter 类表示一个 MQTT 主题过滤器。 更多信息...
头文件 | #include <QMqttTopicFilter> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Mqtt) target_link_libraries(mytarget PRIVATE Qt6::Mqtt) |
qmake | QT += mqtt |
- 所有成员列表,包括继承来的成员
- QMqttTopicFilter 是 隐式共享类 的一部分。
注意: 此类中所有函数都是 可重入的。
公共类型
枚举 | MatchOption { NoMatchOption, WildcardsDontMatchDollarTopicMatchOption } |
标志 | MatchOptions |
公共函数
QMqttTopicFilter(const QString &filter = QString()) | |
QMqttTopicFilter(const QLatin1String &filter) | |
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) |
详细描述
QMqttTopicFilter 在一个 QString 基础上提供了一个表示 MQTT 主题过滤器的类型。除了有类型强约束的好处,避免了未预期的错误使用外,QMqttTopicFilter 还提供了如 isValid() 或 match() 等与主题过滤器相关的便利函数。
例如,以下代码会编译失败,从而防止两个过滤器之间可能发生的未预期的、无意义匹配,特别是在变量名不具表达性时。
QMqttTopicFilter globalFilter{"foo/#"}; QMqttTopicFilter specificFilter{"foo/bar"}; if (globalFilter.match(specificFilter)) { //... }
然而,易用性并未受到影响,因为以下代码片段按预期编译和运行
QMqttTopicFilter globalFilter{"foo/#"}; if (globalFilter.match("foo/bar")) { //... }
另请参阅 QMqttTopicName.
成员类型文档
enum QMqttTopicFilter::MatchOption
flags QMqttTopicFilter::MatchOptions
此枚举值包含主题过滤器的匹配选项。
常量 | 值 | 描述 |
---|---|---|
QMqttTopicFilter::NoMatchOption | 0x0000 | 未设置任何匹配选项。 |
QMqttTopicFilter::WildcardsDontMatchDollarTopicMatchOption | 0x0001 | 在过滤器开头通配符不匹配以美元符号($)开头的主题名称。 |
MatchOptions 类型是 QFlags<MatchOption> 的别名。它存储 MatchOption 值的 OR 组合。
成员函数文档
QMqttTopicFilter::QMqttTopicFilter(const QString &filter = QString())
创建一个新的 MQTT 主题过滤器,其指定 filter。
QMqttTopicFilter::QMqttTopicFilter(const QLatin1String &filter)
创建一个新的 MQTT 主题过滤器,其指定 filter。
QMqttTopicFilter::QMqttTopicFilter(const QMqttTopicFilter &filter)
创建一个新的 MQTT 主题过滤器,作为 filter 的副本。
[noexcept]
QMqttTopicFilter::~QMqttTopicFilter()
销毁 QMqttTopicFilter 对象。
QString QMqttTopicFilter::filter() const
返回主题过滤器。
另请参阅 setFilter().
bool QMqttTopicFilter::isValid() const
如果主题过滤器符合 MQTT 标准第 4.7 节,返回 true
,否则返回 false
。
bool QMqttTopicFilter::match(const QMqttTopicName &name, QMqttTopicFilter::MatchOptions matchOptions = NoMatchOption) const
如果主题过滤器匹配给定 matchOptions 的主题名称 name,则返回 true
,否则返回 false
。
void QMqttTopicFilter::setFilter(const QString &filter)
将主题过滤器设置为 filter。
另请参阅 filter().
QString QMqttTopicFilter::sharedSubscriptionName() const
如果主题过滤器已指定为共享订阅,则返回共享订阅的名称。共享订阅的格式定义如下 $share/sharename/topicfilter
。
[noexcept]
void QMqttTopicFilter::swap(QMqttTopicFilter &other)
交换 MQTT 主题过滤器 other 与此 MQTT 主题过滤器。此操作非常快并且永远不会失败。
QMqttTopicFilter &QMqttTopicFilter::operator=(const QMqttTopicFilter &filter)
将MQTT主题过滤器 filter 分配给此对象,并返回复制的引用。
相关非成员
[noexcept]
bool operator!=(const QMqttTopicFilter &lhs, const QMqttTopicFilter &rhs)
如果主题过滤器 lhs 和 rhs 不同,则返回 true
,否则返回 false
。
[noexcept]
bool operator<(const QMqttTopicFilter &lhs, const QMqttTopicFilter &rhs)
如果主题过滤器 lhs 在词法上小于主题过滤器 rhs,则返回 true
;否则返回 false
。
QDataStream &operator<<(QDataStream &out, const QMqttTopicFilter &filter)
将主题过滤器 filter 写入流 out 并返回流的引用。
另请参见 QDataStream操作符的格式.
[noexcept]
bool operator==(const QMqttTopicFilter &lhs, const QMqttTopicFilter &rhs)
如果主题过滤器 lhs 和 rhs 相等,则返回 true
,否则返回 false
。
QDataStream &operator>>(QDataStream &in, QMqttTopicFilter &filter)
从流 in 中读取主题过滤器到 filter 并返回流的引用。
另请参见 QDataStream操作符的格式.
© 2024 The Qt Company Ltd. 本文档中包含的文档贡献是各自所有者的版权。在此提供的文档是根据自由软件基金会发布的 GNU自由文档许可证版本1.3 条款许可的。Qt及其相关徽标是芬兰和/或其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为各自所有者的财产。