QDBusReply Class
template <typename T> class QDBusReplyQDBusReply クラスは、リモート・オブジェクトへのメソッド呼び出しに対する応答を格納します。詳細...
ヘッダー | #include <QDBusReply> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
qmake: | QT += dbus |
パブリック関数
QDBusReply(const QDBusError &error = QDBusError()) | |
QDBusReply(const QDBusMessage &reply) | |
QDBusReply(const QDBusPendingCall &pcall) | |
QDBusReply(const QDBusPendingReply<T> &reply) | |
QDBusReply(const QDBusReply<T> &other) | |
const QDBusError & | error() const |
const QDBusError & | error() |
bool | isValid() const |
QDBusReply<T>::Type | value() const |
QDBusReply<T>::Type | operator QDBusReply<T>::Type() const |
QDBusReply<T> & | operator=(const QDBusError &dbusError) |
QDBusReply<T> & | operator=(const QDBusMessage &reply) |
QDBusReply<T> & | operator=(const QDBusPendingCall &pcall) |
QDBusReply<T> & | operator=(const QDBusReply<T> &other) |
詳細説明
QDBusReply オブジェクトは、メソッド呼び出しの応答を表すQDBusMessage オブジェクトのサブセットです。これは、最初の出力引数またはエラー・コードのみを含み、QDBusInterface-derived クラスによって使用され、エラー・コードを関数の戻り引数として返すことができます。
これは次のように使用できます:
QDBusReply<QString> reply = interface->call("RemoteMethod"); if (reply.isValid()) // use the returned value useValue(reply.value()); else // call failed. Show an error condition. showError(reply.error());
リモートメソッド呼び出しが失敗しない場合は、エラーチェックを省略できます:
reply = interface->call("RemoteMethod");
ただし、これらの条件で失敗した場合、QDBusReply<T>::value() によって返される値はデフォルトで構成された値になります。これは、有効な戻り値と区別できない場合があります。
QDBusReply オブジェクトは、出力引数や戻り値を持たないリモート呼び出しに使用されます (つまり、"void" 戻り値型を持っています)。リプライが成功したかどうかをテストするには、isValid() 関数を使用します。
QDBusMessage およびQDBusInterfaceも参照 。
メンバ関数のドキュメント
QDBusReply::QDBusReply(const QDBusError &error = QDBusError())
error で指定された D-Bus エラー・コードからエラー・リプライを構築する。
QDBusReply::QDBusReply(const QDBusMessage &reply)
リプライ・メッセージreply から QDBusReply オブジェクトを自動的に構築し、成功リプライの場合はそこから最初の返り値を抽出する。
QDBusReply::QDBusReply(const QDBusPendingCall &pcall)
非同期ペンディング・コールpcall から QDBusReply オブジェクトを自動的に構築します。呼び出しがまだ終了していない場合、QDBusReply は QDBusPendingCall::waitForFinished() を呼び出します。
リターン・タイプが一致する場合、QDBusReply はリプライから最初のリターン引数を抽出します。
QDBusReply::QDBusReply(const QDBusPendingReply<T> &reply)
保留中のリプライ・メッセージreply から QDBusReply オブジェクトを構築する。
QDBusReply::QDBusReply(const QDBusReply<T> &other)
other のコピーを作成する。
const QDBusError &QDBusReply::error() const
リモート関数呼び出しから返されたエラーコードを返す。リモート呼び出しがエラーを返さなかった場合 (つまり成功した場合)、返されるQDBusError オブジェクトは有効なエラーコードではありません (QDBusError::isValid() は false を返します)。
isValid()も参照 。
const QDBusError &QDBusReply::error()
これはオーバーロードされた関数である。
bool QDBusReply::isValid() const
エラーが発生しなかった場合はtrue
を返し、そうでない場合はfalse
を返す。
error()も参照のこと 。
QDBusReply<T>::Type QDBusReply::value() const
リモート関数の呼び出しの戻り値を返します。リモートコールがエラーで返された場合、この関数の返り値は未定義であり、有効な返り値と区別できない可能性がある。
リモートコールがvoid
を返した場合、この関数は使用できません。
QDBusReply<T>::Type QDBusReply::operator QDBusReply<T>::Type() const
value() と同じものを返す。
リモート・コールがvoid
を返す場合、この関数は使用できない。
QDBusReply<T> &QDBusReply::operator=(const QDBusError &dbusError)
このオブジェクトにdbusError で指定されたエラー・コードをセットする。後でerror() でアクセスできる。
QDBusReply<T> &QDBusReply::operator=(const QDBusMessage &reply)
このオブジェクトにreply メッセージを含ませる。reply がエラー・メッセージの場合、この関数はエラー・コードとメッセージをこのオブジェクトにコピーします。
reply が標準応答メッセージで、少なくとも1つのパラメータを含む場合、それが正しい型である限り、このオブジェクトにコピーされます。それがこのQDBusError オブジェクトと同じ型でない場合、この関数は代わりに型の不一致を示すエラー・コードを設定します。
QDBusReply<T> &QDBusReply::operator=(const QDBusPendingCall &pcall)
このオブジェクトに、保留中の非同期呼び出しpcall で指定された応答を含ませる。呼び出しがまだ終了していない場合、この関数はQDBusPendingCall::waitForFinished()を呼 び出し、リプライが到着するまでブロックする。
pcall がエラー・メッセージで終了した場合、この関数はエラー・コードとメッセージをこのオブジェ クトにコピーします。
pcall が標準応答メッセージで終了し、少なくとも1つのパラメータを含む場合、それが正しい型である限り、そのパラメータはこのオブジェクトにコピーされる。それがこのQDBusError オブジェクトと同じ型でない場合、この関数は代わりに型の不一致を示すエラーコードを設定します。
QDBusReply<T> &QDBusReply::operator=(const QDBusReply<T> &other)
このオブジェクトをオブジェクトother のコピーにする。
© 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.