QDBusConnectionInterface Class

QDBusConnectionInterfaceクラスは、D-Busバス・デーモン・サービスへのアクセスを提供します。詳細...

Header: #include <QDBusConnectionInterface>
CMake: find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake: QT += dbus
Inherits: 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バス・サーバー・デーモンは、クライアントがバスの特定のプロパティ(現在の接続クライアント・リストなど)にアクセスできる特別なインターフェース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も参照してください

プロパティ Documentation

[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

バスサービス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 の要求を解放します。このアプリケーションが名前の所有権を持っていた場合、その名前は他のアプリケーショ ンが要求できるように解放される。このアプリケーションがその名前をキューに入れていただけの場合は、キュー内の位置を放棄します。

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