QDBusConnectionInterface Class
QDBusConnectionInterface クラスは、D-Bus バスデーモンサービスへのアクセスを提供します。詳細...
| ヘッダー: | #include <QDBusConnectionInterface> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
| qmake: | QT += dbus |
| 継承元: | QDBusAbstractInterface |
パブリック型
| enum | RegisterServiceReply { ServiceNotRegistered, ServiceRegistered, ServiceQueued } |
| enum | ServiceQueueOptions { DontQueueService, QueueService, ReplaceExistingService } |
| enum | ServiceReplacementOptions { DontAllowReplacement, AllowReplacement } |
プロパティ
- activatableServiceNames : QDBusReply<QStringList>
- registeredServiceNames : QDBusReply<QStringList>
公開スロット
| QDBusReply<QStringList> | activatableServiceNames() const |
| QDBusReply<bool> | isServiceRegistered(const QString &serviceName) const |
| QDBusReply<QDBusConnectionInterface::RegisterServiceReply> | registerService(const QString &serviceName, QDBusConnectionInterface::ServiceQueueOptions qoption = DontQueueService, QDBusConnectionInterface::ServiceReplacementOptions roption = DontAllowReplacement) |
| QDBusReply<QStringList> | registeredServiceNames() const |
(since 6.10) QDBusReply<QVariantMap> | serviceCredentials(const QString &serviceName) const |
| QDBusReply<QString> | serviceOwner(const QString &name) const |
| QDBusReply<uint> | servicePid(const QString &serviceName) const |
| QDBusReply<uint> | serviceUid(const QString &serviceName) const |
| QDBusReply<void> | startService(const QString &name) |
| QDBusReply<bool> | unregisterService(const QString &serviceName) |
シグナル
| void | callWithCallbackFailed(const QDBusError &error, const QDBusMessage &call) |
| void | serviceRegistered(const QString &service) |
| void | serviceUnregistered(const QString &service) |
詳細説明
D-Bus バスサーバーデーモンは、org.freedesktop.DBus という特別なインターフェースを提供しており、クライアントはこれを通じて、現在接続されているクライアントのリストなど、バスの特定のプロパティにアクセスできます。QDBusConnectionInterface クラスは、このインターフェースへのアクセスを提供します。
このクラスの最も一般的な用途は、registerService() およびunregisterService() 関数を使用してバス上でサービス名を登録・登録解除すること、isServiceRegistered()、registeredServiceNames()、serviceOwner() 関数を使用して既存の名前の照会を行うこと、そしてserviceRegistered()、serviceUnregistered()、serviceOwnerChanged() シグナルを通じて、クライアントが登録または登録解除を行ったという通知を受け取ることです。
メンバ型のドキュメント
enum QDBusConnectionInterface::RegisterServiceReply
registerService() の戻り値として取り得る値:
| 定数 | 値 | 説明 |
|---|---|---|
QDBusConnectionInterface::ServiceNotRegistered | 0 | 呼び出しに失敗し、サービス名が登録されませんでした。 |
QDBusConnectionInterface::ServiceRegistered | 1 | 呼び出し元が、そのサービス名の所有者となりました。 |
QDBusConnectionInterface::ServiceQueued | 2 | 呼び出し元が `QueueService ` フラグを指定し、サービスがすでに登録されていたため、キューに入れられています。 |
このアプリケーションによってサービスが取得された時点で、serviceRegistered() シグナルが発信されます。
enum QDBusConnectionInterface::ServiceQueueOptions
サービス名がすでに登録されている場合に、サービス登録がどのように動作すべきかを決定するためのフラグ。
| 定数 | 値 | 説明 |
|---|---|---|
QDBusConnectionInterface::DontQueueService | 0 | アプリケーションが、すでに所有されている名前を要求した場合、キューへの追加は行われません。registeredService() の呼び出しは単に失敗します。これがデフォルトの設定です。 |
QDBusConnectionInterface::QueueService | 1 | 要求されたサービスの登録を試みますが、別のアプリケーションがすでにそのサービスを登録している場合は、上書きしようとはしません。代わりに、このアプリケーションを、登録が断念されるまでキューに入れます。その際には、serviceRegistered() シグナルが発せられます。 |
QDBusConnectionInterface::ReplaceExistingService | 2 | 別のアプリケーションがすでにそのサービス名を登録している場合は、その登録を上書きしようとします。 |
ServiceReplacementOptionsも参照してください 。
enum QDBusConnectionInterface::ServiceReplacementOptions
D-Bus サーバーが、このアプリケーションが `ReplaceExistingService ` オプションで登録した名前を、別のアプリケーションが上書きすることを許可するかどうかを決定するためのフラグです。
取り得る値は以下の通りです:
| 定数 | 値 | 説明 |
|---|---|---|
QDBusConnectionInterface::DontAllowReplacement | 0 | 他のアプリケーションによる置き換えを許可しない。他のアプリケーションがこのサービスを取得するには、unregisterService() を使用して明示的に登録を解除する必要がある。これがデフォルト設定である。 |
QDBusConnectionInterface::AllowReplacement | 1 | 他のアプリケーションが、介入なしに `registerService()` の `ReplaceExistingService ` オプションを使用して、本サービスを置き換えることを許可します。その場合、`serviceUnregistered()` シグナルが発信されます。 |
ServiceQueueOptionsも参照してください 。
プロパティのドキュメント
[read-only] activatableServiceNames : QDBusReply<QStringList>
アクティブ化可能なサービス名を格納しています
バス上でアクティブ化可能なすべての名前を一覧表示します。
アクセス機能:
| QDBusReply<QStringList> | activatableServiceNames() const |
[read-only] registeredServiceNames : QDBusReply<QStringList>
登録済みのサービス名を保持しています
バス上に現在登録されているすべての名前を一覧表示します。
アクセス関数:
| QDBusReply<QStringList> | registeredServiceNames() const |
メンバ関数のドキュメント
[signal] void QDBusConnectionInterface::callWithCallbackFailed(const QDBusError &error, const QDBusMessage &call)
このシグナルは、QDBusConnection::callWithCallback() の実行中にエラーが発生した際に発せられます。error はエラーを指定します。call は、配信できなかったメッセージです。
QDBusConnection::callWithCallback()も参照してください 。
[slot] QDBusReply<bool> QDBusConnectionInterface::isServiceRegistered(const QString &serviceName) const
サービス名「serviceName 」が現在登録されている場合、true を返します。
[slot] QDBusReply<QDBusConnectionInterface::RegisterServiceReply> QDBusConnectionInterface::registerService(const QString &serviceName, QDBusConnectionInterface::ServiceQueueOptions qoption = DontQueueService, QDBusConnectionInterface::ServiceReplacementOptions roption = DontAllowReplacement)
バス上でサービス名「serviceName 」を登録するリクエストです。qoption フラグは、serviceName がすでに登録されている場合にD-Busサーバーがどのように振る舞うかを指定します。roption フラグは、サーバーが他のアプリケーションによる登録済み名の置き換えを許可するかどうかを指定します。
サービス登録に成功すると、serviceRegistered() シグナルが発行されます。キューに入れられた場合、名前を取得した時点でこのシグナルが発行されます。roption がAllowReplacement である場合、別のアプリケーションによってこの名前が置き換えられたときに、serviceUnregistered() シグナルが発行されます。
unregisterService()も参照してください 。
[slot, since 6.10] QDBusReply<QVariantMap> QDBusConnectionInterface::serviceCredentials(const QString &serviceName) const
現在バスサービス `serviceName` を保持しているプロセスの接続認証情報を返します。
詳細については、<https://dbus.freedesktop.org/doc/dbus-specification.html> の「Method: org.freedesktop.DBus.GetConnectionCredentials」セクションを参照してください。
この関数は Qt 6.10 で導入されました。
[slot] QDBusReply<QString> QDBusConnectionInterface::serviceOwner(const QString &name) const
name という名前のプライマリ所有者の一意の接続名を返します。指定された名前に所有者がいない場合は、org.freedesktop.DBus.Error.NameHasNoOwner エラーを返します。
[slot] QDBusReply<uint> QDBusConnectionInterface::servicePid(const QString &serviceName) const
現在バスサービス `serviceName` を保持しているプロセスのUnixプロセスID(PID)を返します。
[signal] void QDBusConnectionInterface::serviceRegistered(const QString &service)
このシグナルは、service によって指定されたバスサービス名(一意の接続名または既知のサービス名)が、このアプリケーションによって取得された際に、D-Bus サーバーから発信されます。
この取得は、このアプリケーションが `registerService()` を使用して名前を要求した後に発生します。
[slot] QDBusReply<uint> QDBusConnectionInterface::serviceUid(const QString &serviceName) const
現在、バスサービス `serviceName` を保持しているプロセスのUnixユーザーID(UID)を返します。
[signal] void QDBusConnectionInterface::serviceUnregistered(const QString &service)
このシグナルは、このアプリケーションが `service` で指定されたバスサービス名の所有権を失った際に、D-Busサーバーによって発信されます。
[slot] QDBusReply<void> QDBusConnectionInterface::startService(const QString &name)
「name 」という名前のサービスをバスが開始するよう要求します。
[slot] QDBusReply<bool> QDBusConnectionInterface::unregisterService(const QString &serviceName)
registerService( ) に以前に登録されていたバスサービス名「serviceName 」に対する権利を解放します。このアプリケーションが当該名称の所有権を持っていた場合、その名称は他のアプリケーションが権利を主張できるよう解放されます。単に名称がキューに登録されていただけの場合は、キュー内の順番を放棄します。
© 2026 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.