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 |
(until 6.13) const QHash<QByteArray, QByteArray> & | metadata() const & |
QLatin1StringView | method() const |
std::optional<T> | read() const |
(since 6.8) bool | read(QProtobufMessage *message) const |
QMetaType | responseMetaType() const |
(since 6.10) const QMultiHash<QByteArray, QByteArray> & | serverInitialMetadata() const & |
(since 6.10) const QMultiHash<QByteArray, QByteArray> & | serverTrailingMetadata() 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 direkt 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, until 6.13]
const QHash<QByteArray, QByteArray> &QGrpcOperation::metadata() const &
Diese Funktion soll in Version 6.13 veraltet sein.
Verwenden Sie stattdessen serverInitialMetadata() und serverTrailingMetadata().
Gibt die anfänglichen Metadaten zurück, die vom Server vor allen Antwortnachrichten empfangen wurden.
Die anfänglichen Metadaten werden vom Server unmittelbar nach dem Aufbau des Anrufs gesendet. Sie können Schlüssel-Wert-Paare enthalten, die den Kontext des Aufrufs angeben.
Hinweis: QGrpcHttp2Channel transportiert Metadaten als HTTP/2-Header. Die Schlüssel sind ASCII-Zeichenfolgen, bei denen die Groß- und Kleinschreibung nicht beachtet wird. Die Verwendung der internen Präfixe :
(Pseudo-Header), grpc-
oder qtgrpc-
ist zu vermeiden. Werte können entweder ASCII-Zeichenfolgen oder Binärdaten sein. Für weitere Informationen siehe RFC 7540, Abschnitt 8.1.2.
Siehe auch serverInitialMetadata() und serverTrailingMetadata().
[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().
QMetaType QGrpcOperation::responseMetaType() const
Gibt den Metatyp der RPC-Antwortnachricht zurück.
[noexcept, since 6.10]
const QMultiHash<QByteArray, QByteArray> &QGrpcOperation::serverInitialMetadata() const &
Gibt die anfänglichen Metadaten zurück, die vom Server vor den Antwortmeldungen empfangen wurden.
Die anfänglichen Metadaten werden vom Server unmittelbar nach dem Aufbau des Anrufs gesendet. Sie können Schlüssel-Wert-Paare enthalten, die den Kontext für den Aufruf liefern.
Hinweis: QGrpcHttp2Channel transportiert Metadaten als HTTP/2-Header. Die Schlüssel sind ASCII-Zeichenfolgen, bei denen die Groß- und Kleinschreibung nicht beachtet wird. Die Verwendung der internen Präfixe :
(Pseudo-Header), grpc-
oder qtgrpc-
ist zu vermeiden. Werte können entweder ASCII-Zeichenfolgen oder Binärdaten sein. Für weitere Informationen siehe RFC 7540, Abschnitt 8.1.2.
Die Metadaten können mehrere Einträge unter demselben Schlüssel enthalten.
Diese Funktion wurde in Qt 6.10 eingeführt.
Siehe auch serverInitialMetadataReceived() und serverTrailingMetadata().
[noexcept, since 6.10]
const QMultiHash<QByteArray, QByteArray> &QGrpcOperation::serverTrailingMetadata() const &
Liefert die vom Server nach allen Antwortnachrichten empfangenen Trailing-Metadaten zurück.
Nachfolgende Metadaten werden vom Server erst gesendet, nachdem alle Antwortnachrichten gesendet wurden und kurz bevor der RPC abgeschlossen wird. Sie können Schlüssel-Wert-Paare enthalten, die zusätzlichen Kontext über den abgeschlossenen Aufruf liefern.
Hinweis: QGrpcHttp2Channel transportiert Metadaten als HTTP/2-Header. Die Schlüssel sind ASCII-Zeichenfolgen, bei denen die Groß- und Kleinschreibung nicht beachtet wird. Die Verwendung der internen Präfixe :
(Pseudo-Header), grpc-
oder qtgrpc-
ist zu vermeiden. Werte können entweder ASCII-Strings oder Binärdaten sein. Für weitere Informationen siehe RFC 7540, Abschnitt 8.1.2.
Die Metadaten können mehrere Einträge unter demselben Schlüssel enthalten.
Diese Funktion wurde in Qt 6.10 eingeführt.
Siehe auch serverInitialMetadata().
© 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.