QGrpcOperation Class
Die Klasse „QGrpcOperation“ stellt allgemeine Operationen zur Steuerung der gRPC™ Kommunikation auf der Client-Seite. Mehr...
| Header: | #include <QGrpcOperation> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Grpc) target_link_libraries(mytarget PRIVATE Qt6::Grpc) |
| Seit: | Qt 6.5 |
| Erbt von: | QObject |
| Wird vererbt 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) |
(since 6.11) void | serverInitialMetadataReceived(const QMultiHash<QByteArray, QByteArray> &metadata) |
Ausführliche 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 allgemeinen Überblick finden Sie im „Qt GRPC -Client-Handbuch“.
Dokumentation zu den Member-Funktionen
[override virtual noexcept] QGrpcOperation::~QGrpcOperation()
Zerstört die „ QGrpcOperation “.
[slot] void QGrpcOperation::cancel()
Versucht, den RPC sofort abzubrechen. Ein erfolgreicher Abbruch kann nicht garantiert werden. Löst das Signal „ finished “ mit dem Statuscode „ Cancelled “ aus.
Siehe auch „ QGrpcOperationContext::cancelRequested “.
[signal] void QGrpcOperation::finished(const QGrpcStatus &status)
Dieses Signal wird ausgelöst, wenn ein zuvor gestarteter RPC abgeschlossen ist. Das „ status “ liefert zusätzliche Informationen über das Ergebnis des RPC.
Nach dem Empfang dieses Signals sollten keine weiteren Schreib- oder Lesevorgänge am Operationsobjekt durchgeführt werden. Zu diesem Zeitpunkt ist es sicher, das RPC-Objekt wiederzuverwenden oder zu vernichten.
Hinweis: Dieses Signal wird nur einmal ausgegeben. In den meisten Fällen sollten Sie die Verbindung unmittelbar nach dem Empfang des Signals trennen, um Probleme zu vermeiden, wie 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 “. Weitere Details finden Sie unter „Single-Shot-RPCs “.
[noexcept] bool QGrpcOperation::isFinished() const
Gibt „true“ zurück, wenn dieser Vorgang abgeschlossen ist, d. h., wenn keine weiteren Vorgänge für den entsprechenden RPC mehr stattfinden können; andernfalls wird „false“ zurückgegeben.
[noexcept, until 6.13] const QHash<QByteArray, QByteArray> &QGrpcOperation::metadata() const &
Diese Funktion wird in Version 6.13 als veraltet markiert.
Verwenden Sie stattdessen „ serverInitialMetadata()“ und „ serverTrailingMetadata()“.
Gibt die vom Server vor dem Empfang von Antwortnachrichten empfangenen anfänglichen Metadaten zurück.
Die anfänglichen Metadaten werden vom Server unmittelbar nach dem Aufbau der Verbindung gesendet. Sie können Schlüssel-Wert-Paare enthalten, die Kontextinformationen für den Aufruf liefern.
Hinweis: Schlüssel mit dem Präfix „ grpc- “ oder „ qtgrpc- “ sind für „ gRPC “ und „ QtGrpc “ reserviert. Entsprechende Einträge werden beim Aufbau der Anfrage ignoriert. Konkrete Kanäle können weitere Einschränkungen auferlegen; siehe QGrpcHttp2Channel#Reserved metadata keys.
Siehe auch serverInitialMetadata() und serverTrailingMetadata().
[noexcept] QLatin1StringView QGrpcOperation::method() const
Gibt den Methodennamen zurück, der dieser RPC-Operation zugeordnet ist.
template <typename T> requires QtProtobuf::if_protobuf_message<T> std::optional<T> QGrpcOperation::read() const
Liest eine Nachricht aus einem Raw-Byte-Array, das in diesem Operationsobjekt gespeichert ist.
Gibt eine optionale deserialisierte Nachricht zurück. Bei einem Fehler wird ` std::nullopt ` zurückgegeben.
Hinweis: Diese Funktion wird nur bei der Überladungsauflösung berücksichtigt, 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 Raw-Byte-Array, das in diesem Operationsobjekt gespeichert ist.
Die Funktion schreibt den deserialisierten Wert in den Zeiger ` message `.
Wenn die Deserialisierung erfolgreich ist, 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 vom Server vor dem Eintreffen von Antwortnachrichten empfangenen anfänglichen Metadaten zurück.
Die anfänglichen Metadaten werden vom Server unmittelbar nach dem Aufbau der Verbindung gesendet. Sie können Schlüssel-Wert-Paare enthalten, die Kontextinformationen für die Verbindung liefern.
Hinweis: Schlüssel mit den Präfixen „ grpc- “ oder „ qtgrpc- “ sind für „ gRPC “ und „ QtGrpc “ reserviert. Entsprechende Einträge werden beim Aufbau der Anfrage ignoriert. Konkrete Kanäle können weitere Einschränkungen auferlegen; siehe QGrpcHttp2Channel#Reserved metadata keys.
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().
[signal, since 6.11] void QGrpcOperation::serverInitialMetadataReceived(const QMultiHash<QByteArray, QByteArray> &metadata)
Dieses Signal wird ausgesendet, wenn der Server seine anfänglichen Metadaten übermittelt. Die anfänglichen Metadaten des Servers werden vor der ersten Antwort eines RPC an den Client gesendet.
Die empfangenen Metadaten werden in „ metadata “ bereitgestellt und sind auch über „ serverInitialMetadata “ () verfügbar.
Hinweis: Schlüssel mit dem Präfix „ grpc- “ oder „ qtgrpc- “ sind für „ gRPC “ und „ QtGrpc “ reserviert. Entsprechende Einträge werden beim Aufbau der Anfrage ignoriert. Konkrete Kanäle können weitere Einschränkungen auferlegen; siehe QGrpcHttp2Channel#Reserved metadata keys.
Diese Funktion wurde in Qt 6.11 eingeführt.
Siehe auch serverInitialMetadata().
[noexcept, since 6.10] const QMultiHash<QByteArray, QByteArray> &QGrpcOperation::serverTrailingMetadata() const &
Gibt die vom Server nach allen Antwortnachrichten empfangenen abschließenden Metadaten zurück.
Abschließende Metadaten werden vom Server erst gesendet, nachdem alle Antwortnachrichten übermittelt wurden und unmittelbar bevor der RPC-Aufruf abgeschlossen wird. Sie können Schlüssel-Wert-Paare enthalten, die zusätzlichen Kontext zum abgeschlossenen Aufruf liefern.
Hinweis: Schlüssel mit den Präfixen „ grpc- “ oder „ qtgrpc- “ sind für „ gRPC “ und „ QtGrpc “ reserviert. Entsprechende Einträge werden beim Aufbau der Anfrage ignoriert. Konkrete Kanäle können weitere Einschränkungen auferlegen; siehe QGrpcHttp2Channel#Reserved metadata keys.
Die Metadaten können mehrere Einträge unter demselben Schlüssel enthalten.
Diese Funktion wurde in Qt 6.10 eingeführt.
Siehe auch ` serverInitialMetadata()`.
© 2026 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.