QDBusServiceWatcher Class
QDBusServiceWatcherクラスは、ユーザーがバス・サービスの変更を監視することを可能にします。詳細...
ヘッダー | #include <QDBusServiceWatcher> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
qmake: | QT += dbus |
継承: | QObject |
パブリックな型
flags | WatchMode |
enum | WatchModeFlag { WatchForRegistration, WatchForUnregistration, WatchForOwnerChange } |
プロパティ
- watchMode : WatchMode
- watchedServices : QStringList
パブリック機能
QDBusServiceWatcher(QObject *parent = nullptr) | |
QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, QDBusServiceWatcher::WatchMode watchMode = WatchForOwnerChange, QObject *parent = nullptr) | |
virtual | ~QDBusServiceWatcher() |
void | addWatchedService(const QString &newService) |
QBindable<QDBusServiceWatcher::WatchMode> | bindableWatchMode() |
QBindable<QStringList> | bindableWatchedServices() |
QDBusConnection | connection() const |
bool | removeWatchedService(const QString &service) |
void | setConnection(const QDBusConnection &connection) |
void | setWatchMode(QDBusServiceWatcher::WatchMode mode) |
void | setWatchedServices(const QStringList &services) |
QDBusServiceWatcher::WatchMode | watchMode() const |
QStringList | watchedServices() const |
シグナル
void | serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner) |
void | serviceRegistered(const QString &serviceName) |
void | serviceUnregistered(const QString &serviceName) |
詳細説明
QDBusServiceWatcherオブジェクトは、バス上のサービス名の所有者変更をアプリケーションに通知するために使用できます。3つのウォッチ・モードがあります:
- サービス登録の監視のみ。
- サービスの登録解除のみを監視。
- あらゆる種類のサービスの所有権変更を監視する(デフォルト・モード)。
作成されたり削除されたりするだけでなく、登録解除/登録操作が行われなくても、サービスの所有者が変更されることがあります。そのため、serviceRegistered() およびserviceUnregistered() シグナルは、そのような場合には発生しません。
このクラスは、QDBusConnectionInterface::serviceOwnerChanged() シグナルを使用するよりも効率的です。
サービス名の最後に'*'を付けると、指定したネームスペース内のすべてのサービス名にマッチします。
たとえば、"com.example.backend1*" は、次のようにマッチします。
- com.example.backend1
- com.example.backend1.foo
- com.example.backend1.foo.bar
同じドメインのサブストリングはマッチしません。つまり、"com.example.backend12 "です。
QDBusConnectionも参照 。
メンバ型ドキュメント
enum QDBusServiceWatcher::WatchModeFlag
flags QDBusServiceWatcher::WatchMode
QDBusServiceWatcher は 3 種類のウォッチモードをサポートしており、このフラグで設定します:
定数 | 値 | 説明 |
---|---|---|
QDBusServiceWatcher::WatchForRegistration | 0x01 | サービス登録のみを監視し、他のサービスの所有権変更に関連するシグナルは無視します。 |
QDBusServiceWatcher::WatchForUnregistration | 0x02 | サービス登録解除のみを監視し、他のサービス所有権変更に関連するシグナルは無視する。 |
QDBusServiceWatcher::WatchForOwnerChange | 0x03 | あらゆる種類のサービス所有権の変更を監視する。 |
WatchMode型はQFlags<WatchModeFlag>のtypedefである。WatchModeFlag値のORの組み合わせを格納する。
プロパティ・ドキュメント
[bindable]
watchMode : WatchMode
注: このプロパティはQProperty バインディングをサポートする。
このプロパティは、このQDBusServiceWatcher オブジェクトの現在のウォッチ・モードを保持します。
このプロパティのデフォルト値は、QDBusServiceWatcher::WatchForOwnershipChange です。
[bindable]
watchedServices : QStringList
注: このプロパティは、QProperty バインディングをサポートしています。
このプロパティは、監視するサービスのリストを保持します。
注釈 setServicesWatched() を使用してこのリストを変更することは、高価な操作です。可能であれば、addWatchedService() やremoveWatchedService() を使用して変更することをお勧めします。
メンバー関数ドキュメント
[explicit]
QDBusServiceWatcher::QDBusServiceWatcher(QObject *parent = nullptr)
QDBusServiceWatcher オブジェクトを作成します。setConnection() で接続を設定するまで、このオブジェクトはシグナルを発しないことに注意してください。
parent パラメータは、このオブジェクトの親を設定するためにQObject に渡されます。
QDBusServiceWatcher::QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, QDBusServiceWatcher::WatchMode watchMode = WatchForOwnerChange, QObject *parent = nullptr)
QDBusServiceWatcher オブジェクトを作成し、connection 接続にアタッチします。また、この関数は、サービスservice に対するwatchMode の変更の監視を直ちに開始します。
parent パラメーターは、このオブジェクトの親を設定するためにQObject に渡されます。
[virtual noexcept]
QDBusServiceWatcher::~QDBusServiceWatcher()
QDBusServiceWatcher オブジェクトを破棄し、それに関連するリソースを解放します。
void QDBusServiceWatcher::addWatchedService(const QString &newService)
このオブジェクトが監視するサービスのリストにnewService を追加する。この関数はsetWatchedServices() よりも効率的であるため、サービスを追加する際には可能な限り使用すべきである。
watchedServices の既存のバインディングを削除します。
QDBusConnection QDBusServiceWatcher::connection() const
このオブジェクトがアタッチされているQDBusConnection を返す。
setConnection()も参照 。
bool QDBusServiceWatcher::removeWatchedService(const QString &service)
このオブジェクトが監視しているサービスのリストからservice を削除する。D-Bus通知は非同期であるため、service についての配信待ちのシグナルが残っている可能性があることに注意してください。これらのシグナルは、D-Bus メッセージが処理されるたびに発行されます。
watchedServices の既存のバインディングを削除します。
サービスが削除された場合、この関数はtrue
を返します。
[signal]
void QDBusServiceWatcher::serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner)
このシグナルは、serviceName サービスに関連するサービス所有者の変更があったことをこのオブジェクトが検出するたびに発行される。oldOwner パラメータには旧所有者名が含まれ、newOwner は新所有者である。oldOwner とnewOwner はどちらも一意の接続名です。
このシグナルは、serviceName サービスが登録または登録解除されたときにも発行される。登録されている場合は、oldOwner に空の文字列が格納され、登録されていない場合は、newOwner に空の文字列が格納されます。
所有者が変更されたことを通知されることなく、サービスが登録されているか未登録であるかのみを知る必要がある場合は、これらの操作のために特定のモードを使用することを検討してください。このクラスは、より特殊なモードを使用した方が効率的です。
serviceRegistered() およびserviceUnregistered()も参照 。
[signal]
void QDBusServiceWatcher::serviceRegistered(const QString &serviceName)
このシグナルは、serviceName サービスがバス上で利用可能になったことをこのオブジェクトが検知するたびに発せられる。
serviceUnregistered() およびserviceOwnerChanged()も参照のこと 。
[signal]
void QDBusServiceWatcher::serviceUnregistered(const QString &serviceName)
このシグナルは、serviceName サービスがバスから登録解除され、利用できなくなったことをこのオブジェクトが検知するたびに発行される。
serviceRegistered() およびserviceOwnerChanged()も参照のこと 。
void QDBusServiceWatcher::setConnection(const QDBusConnection &connection)
このオブジェクトがアタッチされている D-Bus 接続をconnection に設定する。ウォッチされたサービスはすべてこの接続に転送される。
QDBusConnection オブジェクトは参照カウントされることに注意してください。QDBusServiceWatcher は、この接続が存在する間、この接続の参照を保持します。参照カウントがゼロになるまで接続はクローズされないので、このQDBusServiceWatcher オブジェクトが存在する間、すべての通知を確実に受け取ることができます。
connection()も参照のこと 。
void QDBusServiceWatcher::setWatchedServices(const QStringList &services)
監視するD-Busサービスのリストをservices に設定する。
リスト全体を設定することは、サービスを監視するための以前のルールをすべて削除し、新しいルールを追加することを意味することに注意。これは高価な操作であるため、可能であれば避けるべきである。代わりに、リスト内のエントリを操作するために、可能であればaddWatchedService() とremoveWatchedService() を使用する。
watchedServices の既存のバインディングをすべて削除します。
注意: プロパティwatchedServices のセッター関数です。
watchedServices()も参照してください 。
QStringList QDBusServiceWatcher::watchedServices() const
監視対象の D-Bus サービスのリストを返す。
注釈: プロパティ watchedServices のゲッター関数。
setWatchedServices()も参照してください 。
© 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.