QDBusAbstractAdaptor Class

QDBusAbstractAdaptorクラスは、D-Busアダプタ・クラスの基本クラスです。詳細...

Header: #include <QDBusAbstractAdaptor>
CMake: find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake: QT += dbus
Inherits: QObject

パブリック関数

プロテクト関数

QDBusAbstractAdaptor(QObject *obj)
bool autoRelaySignals() const
void setAutoRelaySignals(bool enable)

マクロ

詳細説明

QDBusAbstractAdaptorクラスは、D-Busを使用して外部へのインタフェースを提供しようとするすべてのオブジェクトの出発点です。これは、QDBusAbstractAdaptor から派生した 1 つ以上のクラスを通常のQObject にアタッチし、そのQObjectQDBusConnection::registerObject に登録することで実現します。QDBusAbstractAdaptorオブジェクトは軽量なラッパーであることを意図しており、ほとんどの場合、実際のオブジェクト(その親)への呼び出しとそこからのシグナルを中継するだけです。

各 QDBusAbstractAdaptor 派生クラスは、クラス定義のQ_CLASSINFO マクロを使用して、実装する D-Bus インタフェースを定義する必要があります。この方法で公開できるインターフェイスは 1 つだけであることに注意してください。

QDBusAbstractAdaptor は、シグナル、スロット、プロパティの標準的なQObject メカニズムを使用して、バスにエクスポートするシグナル、メソッド、プロパティを決定します。QDBusAbstractAdaptorから派生したクラスが発するシグナルは、オブジェクトが登録されているD-Busコネクションを通して自動的に中継されます。

QDBusAbstractAdaptor から派生したクラスは、new 演算子を使用してヒープ上に作成する必要があり、ユーザが削除してはなりません(接続先のオブジェクトが削除されると自動的に削除されます)。

アダプタの使用と QDBusConnectionも参照してください

メンバ関数の説明

[explicit protected] QDBusAbstractAdaptor::QDBusAbstractAdaptor(QObject *obj)

obj を親オブジェクトとする QDBusAbstractAdaptor を構築します。

[virtual noexcept] QDBusAbstractAdaptor::~QDBusAbstractAdaptor()

アダプタを破棄します。

警告 警告: アダプタは、それが参照している実オブジェクトが破棄されると自動的に破棄されます。アダプタを自分で削除しないでください。

[protected] bool QDBusAbstractAdaptor::autoRelaySignals() const

実オブジェクトからのシグナルの自動中継 (object() を参照) が有効な場合はtrue を返し、そうでない場合はfalse を返す。

setAutoRelaySignals()も参照

[protected] void QDBusAbstractAdaptor::setAutoRelaySignals(bool enable)

実オブジェクトからの自動シグナル中継を切り替えます (object() を参照)。

自動シグナル中継は、両方のクラスで全く同じメソッド・シグネチャを持つ親のシグナルを、シグナル間で接続します。

enable を true に設定するとシグナルを接続し、false に設定するとすべてのシグナルを切断します。

autoRelaySignals()も参照

マクロ・ドキュメント

Q_NOREPLY

Q_NOREPLY マクロを使用すると、呼び出されるメソッドをマークし、QDBusInterface::call() から戻る前にそのメソッドの処理が終了するのを待たずに呼び出すことができます。呼び出されたメソッドはいかなる出力引数も返すことはできず、もし返すとしても、そのような引数はすべて破棄されます。

このマクロは、例のようにクラス宣言でメソッドの戻り値("void "でなければならない)の前に置くことで、自分のアダプタで使用することができます:

Q_NOREPLY void myMethod();

メソッドの実装(クラス宣言の外側)でこのマクロを使用するかどうかは任意です。

Qt D-Bus アダプタの使用」も参照してください

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