QDBusPendingCall Class
Die Klasse QDBusPendingCall verweist auf einen anstehenden asynchronen Aufruf. Mehr...
Kopfzeile: | #include <QDBusPendingCall> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
qmake: | QT += dbus |
Vererbt von: |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QDBusPendingCall ist Teil von Implicitly Shared Classes.
Öffentliche Funktionen
QDBusPendingCall(const QDBusPendingCall &other) | |
~QDBusPendingCall() | |
void | swap(QDBusPendingCall &other) |
QDBusPendingCall & | operator=(const QDBusPendingCall &other) |
Statische öffentliche Mitglieder
QDBusPendingCall | fromCompletedCall(const QDBusMessage &msg) |
QDBusPendingCall | fromError(const QDBusError &error) |
Detaillierte Beschreibung
Ein QDBusPendingCall-Objekt ist eine Referenz auf einen Methodenaufruf, der über D-Bus gesendet wurde, ohne auf eine Antwort zu warten. QDBusPendingCall ist ein undurchsichtiger Typ, der als Handle für eine ausstehende Antwort verwendet werden soll.
In den meisten Programmen wird die Klasse QDBusPendingCall nicht direkt verwendet werden. Sie kann sicher durch die vorlagenbasierte Klasse QDBusPendingReply ersetzt werden, um auf den Inhalt der Antwort zuzugreifen oder auf ihre Fertigstellung zu warten.
Die Klasse QDBusPendingCallWatcher ermöglicht es, eine Verbindung zu einem Signal herzustellen, das anzeigt, wann die Antwort eingetroffen ist oder ob die Zeit für den Aufruf abgelaufen ist. Sie bietet auch die Methode QDBusPendingCallWatcher::waitForFinished(), die die Ausführung des Programms unterbricht, bis die Antwort eingetroffen ist.
Hinweis: Wenn Sie eine Kopie eines QDBusPendingCall-Objekts erstellen, werden alle Informationen zwischen den vielen Kopien ausgetauscht. Daher ist QDBusPendingCall ein explizit gemeinsam genutztes Objekt und bietet keine Methode, um die Kopien zu trennen (da sie sich auf denselben anstehenden Aufruf beziehen).
Siehe auch QDBusPendingReply und QDBusPendingCallWatcher.
Dokumentation der Mitgliedsfunktionen
QDBusPendingCall::QDBusPendingCall(const QDBusPendingCall &other)
Erzeugt eine Kopie des ausstehenden asynchronen Aufrufs other. Beachten Sie, dass sich beide Objekte auf denselben anstehenden Aufruf beziehen.
[noexcept]
QDBusPendingCall::~QDBusPendingCall()
Zerstört diese Kopie des QDBusPendingCall Objekts. Wenn diese Kopie auch die letzte Kopie eines anstehenden asynchronen Aufrufs ist, wird der Aufruf abgebrochen und es werden keine weiteren Benachrichtigungen empfangen. Es gibt keine Möglichkeit, auf den Inhalt der Antwort zuzugreifen, wenn diese eintrifft.
[static]
QDBusPendingCall QDBusPendingCall::fromCompletedCall(const QDBusMessage &msg)
Erzeugt ein Objekt QDBusPendingCall auf der Grundlage der Nachricht msg. Die Nachricht muss vom Typ QDBusMessage::ErrorMessage oder QDBusMessage::ReplyMessage sein (d. h. eine Nachricht, die typisch für einen abgeschlossenen Aufruf ist).
Diese Funktion ist nützlich für Code, der einen anstehenden, aber bereits abgeschlossenen Aufruf simulieren soll.
Siehe auch fromError().
[static]
QDBusPendingCall QDBusPendingCall::fromError(const QDBusError &error)
Erzeugt ein QDBusPendingCall Objekt basierend auf der Fehlerbedingung error. Das resultierende Pending Call-Objekt befindet sich im Zustand "finished" und QDBusPendingReply<Types...>::isError() gibt true zurück.
Siehe auch fromCompletedCall().
[noexcept]
void QDBusPendingCall::swap(QDBusPendingCall &other)
Tauscht diese anhängige Anrufinstanz mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
QDBusPendingCall &QDBusPendingCall::operator=(const QDBusPendingCall &other)
Erstellt eine Kopie des anstehenden asynchronen Aufrufs other und lässt den Verweis auf den zuvor referenzierten Aufruf fallen. Beachten Sie, dass beide Objekte nach dieser Funktion auf denselben anstehenden Aufruf verweisen.
Wenn dieses Objekt die letzte Referenz eines anstehenden asynchronen Aufrufs enthielt, wird der Aufruf abgebrochen und es werden keine weiteren Benachrichtigungen empfangen. Es gibt keine Möglichkeit, auf den Inhalt der Antwort zuzugreifen, wenn diese eintrifft.
© 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.