QMqttTopicFilter Class

QMqttTopicFilter クラスは、MQTT トピック・フィルタを表します。詳細...

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

注意:このクラスの関数はすべてリエントラントです。

パブリック型

enum MatchOption { NoMatchOption, WildcardsDontMatchDollarTopicMatchOption }
flags MatchOptions

パブリック関数

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)

詳細説明

QMqttTopicFilter は、MQTT トピック・フィルタのための表現力豊かなデータ型を提供するQString の薄いラッパーです。強力な型を持つことで意図しない誤用を防ぐことができるという利点の他に、QMqttTopicFilterはisValid()やmatch()のようなトピックフィルタに関連する便利な関数を提供します。

例えば、以下のコードはコンパイルに失敗し、2つのフィルタの意図しない無意味なマッチングを防ぐことができます:

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

この enum 値は、トピックフィルタのマッチオプションを保持します。

定数説明
QMqttTopicFilter::NoMatchOption0x0000マッチオプションは設定されません。
QMqttTopicFilter::WildcardsDontMatchDollarTopicMatchOption0x0001フィルタの先頭のワイルドカードは、ドル記号 ($) で始まるトピック名にはマッチしません。

MatchOptions型はQFlags<MatchOption>のtypedefです。MatchOption 値の OR の組み合わせを格納します。

メンバ関数ドキュメント

QMqttTopicFilter::QMqttTopicFilter(const QLatin1String &filter)

指定されたfilter で新しい MQTT トピック・フィルタを作成する。

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

指定されたfilter で新しい MQTT トピック・フィルターを作成する。

QMqttTopicFilter::QMqttTopicFilter(const QMqttTopicFilter &filter)

filter のコピーとして新しい MQTT トピック・フィルタを作成します。

[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)

トピックフィルターlhsrhs が異なる場合は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)

トピック・フィルタlhsrhs が等しい場合はtrue を返し、そうでない場合はfalse を返します。

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

トピック・フィルタをストリームin からfilter に読み取り、ストリームへの参照を返します。

QDataStream 演算子のフォーマットも参照してください

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。