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 }

プロパティ

公開スロット

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
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バス・サーバー・デーモンは、クライアントがバスの特定のプロパティ(現在接続されているクライアントのリストなど)にアクセスできるようにする1つの特別なインターフェースorg.freedesktop.DBus 。QDBusConnectionInterfaceクラスは、このインターフェースへのアクセスを提供します。

このクラスの最も一般的な使用方法は、registerService() およびunregisterService() 関数を使用してバス上のサービス名を登録および登録解除すること、isServiceRegistered(),registeredServiceNames() およびserviceOwner() 関数を使用して既存の名前について問い合わせること、serviceRegistered(),serviceUnregistered() および serviceOwnerChanged() シグナルを使用してクライアントが登録または登録解除したことを通知として受け取ることである。

メンバ型ドキュメント

enum QDBusConnectionInterface::RegisterServiceReply

registerService() から返される可能性のある値:

定数説明
QDBusConnectionInterface::ServiceNotRegistered0呼び出しは失敗し、サービス名は登録されませんでした。
QDBusConnectionInterface::ServiceRegistered1呼び出し元がサービス名の所有者になりました。
QDBusConnectionInterface::ServiceQueued2呼び出し元がQueueService フラグを指定し、サービスがすでに登録されていたため、キューに入った。

このアプリケーションによってサービスが取得されると、serviceRegistered ()シグナルが発行されます。

enum QDBusConnectionInterface::ServiceQueueOptions

サービス名がすでに登録されている場合に、サービス登録がどのように動作するかを決定するためのフラグ。

定数説明
QDBusConnectionInterface::DontQueueService0アプリケーションが既に所有されている名前を要求した場合、キューイングは実行されません。registeredService() 呼び出しは単に失敗します。これはデフォルトです。
QDBusConnectionInterface::QueueService1要求されたサービスの登録を試みますが、他のアプリケーションがすでにそのサービスを登録している場合は、置き換えようとしません。その代わりに、このアプリケーションを単にキューに入れ、あきらめるまで待ちます。その際、serviceRegistered ()シグナルが発せられます。
QDBusConnectionInterface::ReplaceExistingService2他のアプリケーションがすでにそのサービス名を登録している場合は、置き換えを試みます。

ServiceReplacementOptionsも参照のこと

enum QDBusConnectionInterface::ServiceReplacementOptions

D-Bus サーバーが、このアプリケーションがReplaceExistingService オプションで登録した名前の置き換えを他のアプリケーションに許可するかどうかを決定するためのフラグ。

指定できる値は以下のとおりです:

定数説明
QDBusConnectionInterface::DontAllowReplacement0他のアプリケーションによる置き換えを許可しない。他のアプリケーションがサービスを取得するには、unregisterService() で明示的に登録を解除する必要があります。これはデフォルトです。
QDBusConnectionInterface::AllowReplacement1他のアプリケーションがregisterService() のReplaceExistingService オプションを使用して私たちを置き換えることを許可する。その場合、serviceUnregistered() シグナルが発行される。

ServiceQueueOptionsも参照してください

プロパティ・ドキュメント

[read-only] activatableServiceNames : const QDBusReply<QStringList>

アクティブ化可能なサービス名を保持

バス上でアクティベート可能なすべての名前をリストアップします。

アクセス関数:

QDBusReply<QStringList> activatableServiceNames() const

[read-only] registeredServiceNames : const 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 ()シグナルが発行される。キューに入れられた場合は、名前を取得したときにシグナルが発せられる。roptionAllowReplacement の場合、他のアプリケーションがこのアプリケーションを置き換える と、serviceUnregistered() シグナルが発せられる。

unregisterService()も参照のこと

[slot] QDBusReply<QString> QDBusConnectionInterface::serviceOwner(const QString &name) const

name という名前の主な所有者の一意の接続名を返します。要求された名前に所有者がいない場合は、org.freedesktop.DBus.Error.NameHasNoOwner エラーを返します。

[slot] QDBusReply<uint> QDBusConnectionInterface::servicePid(const QString &serviceName) const

現在バスサービスを保持しているプロセスの Unix プロセス ID (PID) を返すserviceName

[signal] void QDBusConnectionInterface::serviceRegistered(const QString &service)

このシグナルは、service によって指定されたバス・サービス名(一意の接続名または周知のサービス名)がこのアプリケーションによって取得されたときに、Dバス・サーバーによって発行される。

取得は、このアプリケーションがregisterService() を使用して名前を要求した後に行われます。

[slot] QDBusReply<uint> QDBusConnectionInterface::serviceUid(const QString &serviceName) const

現在バスサービスを保持しているプロセスの Unix User ID (UID) を返すserviceName

[signal] void QDBusConnectionInterface::serviceUnregistered(const QString &service)

このシグナルは、アプリケーションがservice で指定されたバス・サービス名の所有権を失ったときに、Dバス・サーバーから発行されます。

[slot] QDBusReply<void> QDBusConnectionInterface::startService(const QString &name)

name で指定されたサービスの開始をバスに要求する。

[slot] QDBusReply<bool> QDBusConnectionInterface::unregisterService(const QString &serviceName)

registerService()に登録されていたバスサービス名serviceName のクレームを解放する。このアプリケーションがその名前の所有権を持っていた場合、その名前は他のアプリケー ションが要求できるように解放される。このアプリケーションがその名前をキューに入れていただけの場合、キュー内の位置を放棄する。

© 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.