QGrpcOperation Class
Die Klasse QGrpcOperation bietet allgemeine Operationen zur Handhabung der gRPC™ Kommunikation von der Client-Seite aus. Mehr...
Kopfzeile: | #include <QGrpcOperation> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Grpc) target_link_libraries(mytarget PRIVATE Qt6::Grpc) |
Seit: | Qt 6.5 |
Erbt: | QObject |
Geerbt von: | QGrpcBidiStream, QGrpcCallReply, QGrpcClientStream, und QGrpcServerStream |
Öffentliche Funktionen
virtual | ~QGrpcOperation() override |
bool | isFinished() const |
const QHash<QByteArray, QByteArray> & | metadata() const & |
QLatin1StringView | method() const |
std::optional<T> | read() const |
(since 6.8) bool | read(QProtobufMessage *message) const |
Öffentliche Slots
void | cancel() |
Signale
void | finished(const QGrpcStatus &status) |
Detaillierte Beschreibung
QGrpcOperation dient als Basisklasse für die vier gRPC™ Methodentypen: QGrpcCallReply (unäre Aufrufe), QGrpcServerStream (Server-Streaming), QGrpcClientStream (Client-Streaming) und QGrpcBidiStream (bidirektionales Streaming). Sie bietet eine gemeinsame Schnittstelle für die Interaktion mit diesen Remote Procedure Calls (RPCs).
Jede QGrpcOperation entspricht einem bestimmten RPC, der über die generierte Client-Schnittstelle angefordert wird.
Einen umfassenden Überblick finden Sie im Qt GRPC Client Guide.
Dokumentation der Mitgliedsfunktionen
[override virtual noexcept]
QGrpcOperation::~QGrpcOperation()
Zerstört die QGrpcOperation.
[slot]
void QGrpcOperation::cancel()
Versucht, die RPC sofort abzubrechen. Ein erfolgreicher Abbruch kann nicht garantiert werden. Sendet das Signal finished mit einem Cancelled Statuscode.
Siehe auch QGrpcOperationContext::cancelRequested.
[signal]
void QGrpcOperation::finished(const QGrpcStatus &status)
Dieses Signal wird ausgegeben, wenn eine zuvor gestartete RPC beendet ist. Die status liefert zusätzliche Informationen über das Ergebnis der RPC.
Nachdem dieses Signal empfangen wurde, sollten keine weiteren Schreib- oder Leseoperationen auf dem Operationsobjekt durchgeführt werden. Zu diesem Zeitpunkt ist es sicher, das RPC-Objekt wiederzuverwenden oder zu zerstören.
Hinweis: Dieses Signal wird nur einmal ausgegeben, und in den meisten Fällen werden Sie die Verbindung sofort nach dem Empfang des Signals trennen wollen, um Probleme zu vermeiden, z. B. dass Lambda-Captures nach dem Empfang des Signals nicht zerstört werden. Eine einfache Möglichkeit, dies zu erreichen, ist die Verwendung des Verbindungstyps SingleShotConnection. Siehe Single Shot RPCs für weitere Details.
[noexcept]
bool QGrpcOperation::isFinished() const
Gibt true zurück, wenn dieser Vorgang abgeschlossen ist, d. h., dass keine weiteren Vorgänge auf dem entsprechenden RPC stattfinden können, andernfalls wird false zurückgegeben.
[noexcept]
const QHash<QByteArray, QByteArray> &QGrpcOperation::metadata() const &
Gibt die vom Channel empfangenen Server-Metadaten zurück.
Hinweis: Bei HTTP/2 channels umfasst dies in der Regel die vom Server empfangenen HTTP-Header.
[noexcept]
QLatin1StringView QGrpcOperation::method() const
Gibt den Methodennamen zurück, der mit dieser RPC-Operation verbunden ist.
template <typename T, QtProtobuf::if_protobuf_message<T> = true> std::optional<T> QGrpcOperation::read() const
Liest eine Nachricht aus einem Rohbyte-Array, das in diesem Operationsobjekt gespeichert ist.
Gibt eine optionale deserialisierte Nachricht zurück. Im Fehlerfall wird std::nullopt
zurückgegeben.
Hinweis: Diese Funktion nimmt nur an der Überlastauflösung teil, wenn T
eine Unterklasse von QProtobufMessage ist.
Siehe auch read(QProtobufMessage *).
[since 6.8]
bool QGrpcOperation::read(QProtobufMessage *message) const
Liest eine Nachricht aus einem Rohbyte-Array, das in diesem Operationsobjekt gespeichert ist.
Die Funktion schreibt den deserialisierten Wert in den Zeiger message.
Wenn die Deserialisierung erfolgreich war, gibt diese Funktion true
zurück. Andernfalls gibt sie false
zurück.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch read().
© 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.