QGrpcOperation Class
La classe QGrpcOperation fournit des opérations communes pour gérer la communication du côté client. gRPC™ communication du côté client. Plus d'informations...
| En-tête : | #include <QGrpcOperation> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Grpc)target_link_libraries(mytarget PRIVATE Qt6::Grpc) |
| Depuis : | Qt 6.5 |
| Hérite : | QObject |
| Hérité par : | QGrpcBidiStream, QGrpcCallReply, QGrpcClientStream, et QGrpcServerStream |
Fonctions publiques
| 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 & |
Emplacements publics
| void | cancel() |
Signaux
| void | finished(const QGrpcStatus &status) |
(since 6.11) void | serverInitialMetadataReceived(const QMultiHash<QByteArray, QByteArray> &metadata) |
Description détaillée
QGrpcOperation sert de classe de base pour les quatre types de méthodes suivants gRPC™ types de méthodes : QGrpcCallReply (appels unaires), QGrpcServerStream (flux serveur), QGrpcClientStream (flux client) et QGrpcBidiStream (flux bidirectionnel). Elle fournit une interface commune pour interagir avec ces appels de procédure à distance (RPC).
Chaque QGrpcOperation correspond à une RPC spécifique demandée via l'interface client générée.
Pour une vue d'ensemble de haut niveau, voir le guide du clientQt GRPC .
Documentation des fonctions membres
[override virtual noexcept] QGrpcOperation::~QGrpcOperation()
Détruit le site QGrpcOperation.
[slot] void QGrpcOperation::cancel()
Tente d'annuler la RPC immédiatement. Le succès de l'annulation n'est pas garanti. Emet le signal finished avec un code d'état Cancelled.
Voir aussi QGrpcOperationContext::cancelRequested.
[signal] void QGrpcOperation::finished(const QGrpcStatus &status)
Ce signal est émis lorsqu'une RPC lancée précédemment est terminée. Le site status fournit des informations supplémentaires sur le résultat de la RPC.
Après réception de ce signal, aucune autre opération d'écriture ou de lecture ne doit être effectuée sur l'objet operation. À ce stade, il est possible de réutiliser ou de détruire l'objet RPC en toute sécurité.
Note : Ce signal n'est émis qu'une seule fois, et dans la plupart des cas, vous voudrez vous déconnecter juste après l'avoir reçu pour éviter des problèmes, tels que les captures lambda qui ne sont pas détruites après avoir reçu le signal. Un moyen simple d'y parvenir est d'utiliser le type de connexion SingleShotConnection. Voir Single Shot RPCs pour plus de détails.
[noexcept] bool QGrpcOperation::isFinished() const
Retourne true si cette opération est terminée, ce qui signifie qu'aucune autre opération ne peut avoir lieu sur le RPC correspondant, sinon retourne false.
[noexcept, until 6.13] const QHash<QByteArray, QByteArray> &QGrpcOperation::metadata() const &
Cette fonction sera obsolète à partir de la version 6.13.
Utilisez serverInitialMetadata() et serverTrailingMetadata() à la place.
Renvoie les métadonnées initiales reçues du serveur avant tout message de réponse.
Les métadonnées initiales sont envoyées par le serveur immédiatement après l'établissement de l'appel. Elles peuvent inclure des paires clé-valeur qui fournissent le contexte de l'appel.
Remarque : QGrpcHttp2Channel transporte les métadonnées sous forme d'en-têtes HTTP/2. Les clés sont des chaînes ASCII insensibles à la casse. Vous devez éviter d'utiliser les préfixes internes : : (pseudo-en-tête), grpc- ou qtgrpc-. Les valeurs peuvent être des chaînes ASCII ou des données binaires. Pour plus d'informations, voir RFC 7540, section 8.1.2.
Voir aussi serverInitialMetadata() et serverTrailingMetadata().
[noexcept] QLatin1StringView QGrpcOperation::method() const
Renvoie le nom de la méthode associée à cette opération RPC.
template <typename T, QtProtobuf::if_protobuf_message<T> = true> std::optional<T> QGrpcOperation::read() const
Lit un message à partir d'un tableau d'octets brut stocké dans cet objet d'opération.
Retourne un message désérialisé optionnel. En cas d'échec, std::nullopt est renvoyé.
Remarque : cette fonction ne participe à la résolution des surcharges que si T est une sous-classe de QProtobufMessage.
Voir aussi read(QProtobufMessage *).
[since 6.8] bool QGrpcOperation::read(QProtobufMessage *message) const
Lit un message à partir d'un tableau d'octets brut stocké dans cet objet d'opération.
La fonction écrit la valeur désérialisée dans le pointeur message.
Si la désérialisation est réussie, cette fonction renvoie true. Dans le cas contraire, elle renvoie false.
Cette fonction a été introduite dans Qt 6.8.
Voir aussi read().
QMetaType QGrpcOperation::responseMetaType() const
Renvoie le méta type du message de réponse RPC.
[noexcept, since 6.10] const QMultiHash<QByteArray, QByteArray> &QGrpcOperation::serverInitialMetadata() const &
Renvoie les métadonnées initiales reçues du serveur avant tout message de réponse.
Les métadonnées initiales sont envoyées par le serveur immédiatement après l'établissement de l'appel. Elles peuvent inclure des paires clé-valeur qui fournissent le contexte de l'appel.
Remarque : QGrpcHttp2Channel transporte les métadonnées sous forme d'en-têtes HTTP/2. Les clés sont des chaînes ASCII insensibles à la casse. Vous devez éviter d'utiliser les préfixes internes : : (pseudo-en-tête), grpc- ou qtgrpc-. Les valeurs peuvent être des chaînes ASCII ou des données binaires. Pour plus d'informations, voir RFC 7540, section 8.1.2.
Les métadonnées peuvent contenir plusieurs entrées sous la même clé.
Cette fonction a été introduite dans Qt 6.10.
Voir aussi serverInitialMetadataReceived() et serverTrailingMetadata().
[signal, since 6.11] void QGrpcOperation::serverInitialMetadataReceived(const QMultiHash<QByteArray, QByteArray> &metadata)
Ce signal est émis lorsque le serveur répond avec ses métadonnées initiales. Les métadonnées initiales du serveur sont envoyées au client avant la réponse initiale d'une RPC.
Les métadonnées reçues sont fournies dans metadata et sont également disponibles via serverInitialMetadata().
Remarque : QGrpcHttp2Channel transporte les métadonnées sous forme d'en-têtes HTTP/2. Les clés sont des chaînes ASCII insensibles à la casse. Vous devez éviter d'utiliser les préfixes internes : : (pseudo-en-tête), grpc- ou qtgrpc-. Les valeurs peuvent être des chaînes ASCII ou des données binaires. Pour plus d'informations, voir RFC 7540, section 8.1.2.
Cette fonction a été introduite dans Qt 6.11.
Voir aussi serverInitialMetadata().
[noexcept, since 6.10] const QMultiHash<QByteArray, QByteArray> &QGrpcOperation::serverTrailingMetadata() const &
Renvoie les métadonnées de suivi reçues du serveur après tous les messages de réponse.
Les métadonnées de suivi sont envoyées uniquement par le serveur une fois que tous les messages de réponse ont été envoyés et juste avant que la RPC ne se termine. Elles peuvent inclure des paires clé-valeur fournissant un contexte supplémentaire sur l'appel terminé.
Remarque : QGrpcHttp2Channel transporte les métadonnées sous forme d'en-têtes HTTP/2. Les clés sont des chaînes ASCII insensibles à la casse. Vous devez éviter d'utiliser les préfixes internes : : (pseudo-en-tête), grpc- ou qtgrpc-. Les valeurs peuvent être des chaînes ASCII ou des données binaires. Pour plus d'informations, voir RFC 7540, section 8.1.2.
Les métadonnées peuvent contenir plusieurs entrées sous la même clé.
Cette fonction a été introduite dans Qt 6.10.
Voir aussi 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.