QDBusReply Class
template <typename T> class QDBusReplyDie Klasse QDBusReply speichert die Antwort auf einen Methodenaufruf an ein entferntes Objekt. Mehr...
Kopfzeile: | #include <QDBusReply> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
qmake: | QT += dbus |
Öffentliche Funktionen
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) |
Detaillierte Beschreibung
Ein QDBusReply-Objekt ist eine Untermenge des QDBusMessage -Objekts, das die Antwort auf einen Methodenaufruf darstellt. Es enthält nur das erste Ausgangsargument oder den Fehlercode und wird von QDBusInterface-abgeleiteten Klassen verwendet, um die Rückgabe des Fehlercodes als Rückgabeargument der Funktion zu ermöglichen.
Er kann auf folgende Weise verwendet werden:
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());
Wenn der Aufruf der Fernmethode nicht fehlschlagen kann, können Sie die Fehlerprüfung überspringen:
reply = interface->call("RemoteMethod");
Wenn er jedoch unter diesen Bedingungen fehlschlägt, ist der von QDBusReply<T>::value() zurückgegebene Wert ein standardmäßig konstruierter Wert. Er kann von einem gültigen Rückgabewert ununterscheidbar sein.
QDBusReply-Objekte werden für Remote-Aufrufe verwendet, die keine Ausgangsargumente oder Rückgabewerte haben (d.h. sie haben einen Rückgabetyp "void"). Verwenden Sie die Funktion isValid(), um zu testen, ob die Antwort erfolgreich war.
Siehe auch QDBusMessage und QDBusInterface.
Dokumentation der Mitgliedsfunktionen
QDBusReply::QDBusReply(const QDBusError &error = QDBusError())
Konstruiert eine Fehlerantwort aus dem D-Bus-Fehlercode, der durch error angegeben wird.
QDBusReply::QDBusReply(const QDBusMessage &reply)
Konstruiert automatisch ein QDBusReply-Objekt aus der Antwortnachricht reply und extrahiert daraus den ersten Rückgabewert, wenn es sich um eine erfolgreiche Antwort handelt.
QDBusReply::QDBusReply(const QDBusPendingCall &pcall)
Konstruiert automatisch ein QDBusReply-Objekt aus dem asynchronen anstehenden Aufruf pcall. Wenn der Aufruf noch nicht beendet ist, ruft QDBusReply QDBusPendingCall::waitForFinished() auf, was ein blockierender Vorgang ist.
Wenn die Rückgabetypen unterschiedlich sind, extrahiert QDBusReply das erste Rückgabeargument aus der Antwort.
QDBusReply::QDBusReply(const QDBusPendingReply<T> &reply)
Konstruiert ein QDBusReply-Objekt aus der anstehenden Antwortnachricht, reply.
QDBusReply::QDBusReply(const QDBusReply<T> &other)
Konstruiert eine Kopie von other.
const QDBusError &QDBusReply::error() const
Gibt den Fehlercode zurück, der von dem Aufruf der Fernfunktion zurückgegeben wurde. Wenn der Fernaufruf keinen Fehler zurückgegeben hat (d.h. wenn er erfolgreich war), dann ist das zurückgegebene QDBusError Objekt kein gültiger Fehlercode (QDBusError::isValid() gibt false zurück).
Siehe auch isValid().
const QDBusError &QDBusReply::error()
Dies ist eine überladene Funktion.
bool QDBusReply::isValid() const
Gibt true
zurück, wenn kein Fehler aufgetreten ist; andernfalls wird false
zurückgegeben.
Siehe auch error().
QDBusReply<T>::Type QDBusReply::value() const
Gibt den Rückgabewert des Aufrufs der entfernten Funktion zurück. Wenn der Fernaufruf mit einem Fehler zurückkehrt, ist der Rückgabewert dieser Funktion undefiniert und kann von einem gültigen Rückgabewert nicht unterschieden werden.
Diese Funktion ist nicht verfügbar, wenn der Fernaufruf void
zurückgibt.
QDBusReply<T>::Type QDBusReply::operator QDBusReply<T>::Type() const
Gibt dasselbe zurück wie value().
Diese Funktion ist nicht verfügbar, wenn der Fernaufruf void
zurückgibt.
QDBusReply<T> &QDBusReply::operator=(const QDBusError &dbusError)
Setzt dieses Objekt so, dass es den von dbusError angegebenen Fehlercode enthält. Sie können später mit error() darauf zugreifen.
QDBusReply<T> &QDBusReply::operator=(const QDBusMessage &reply)
Dieses Objekt soll die Meldung reply enthalten. Wenn reply eine Fehlermeldung ist, kopiert diese Funktion den Fehlercode und die Meldung in dieses Objekt.
Wenn reply eine Standardantwortnachricht ist und mindestens einen Parameter enthält, wird dieser in dieses Objekt kopiert, sofern er vom richtigen Typ ist. Ist er nicht vom gleichen Typ wie dieses QDBusError Objekt, setzt diese Funktion stattdessen einen Fehlercode, der eine Typinkongruenz anzeigt.
QDBusReply<T> &QDBusReply::operator=(const QDBusPendingCall &pcall)
Dieses Objekt enthält die Antwort, die durch den anstehenden asynchronen Aufruf pcall angegeben wurde. Wenn der Aufruf noch nicht beendet ist, ruft diese Funktion QDBusPendingCall::waitForFinished() auf, um zu blockieren, bis die Antwort eintrifft.
Wenn pcall mit einer Fehlermeldung beendet wird, kopiert diese Funktion den Fehlercode und die Meldung in dieses Objekt
Wenn pcall mit einer Standard-Antwortnachricht endet und mindestens einen Parameter enthält, wird dieser in dieses Objekt kopiert, sofern er vom richtigen Typ ist. Ist er nicht vom gleichen Typ wie dieses QDBusError Objekt, setzt diese Funktion stattdessen einen Fehlercode, der eine Typinkongruenz anzeigt.
QDBusReply<T> &QDBusReply::operator=(const QDBusReply<T> &other)
Macht dieses Objekt zu einer Kopie des Objekts 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.