QGrpcCallOptions Class
La classe `QGrpcCallOptions` propose diverses options permettant de paramétrer précisément chaque appel RPC. En savoir plus...
| En-tête : | #include <QGrpcCallOptions> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Grpc) target_link_libraries(mytarget PRIVATE Qt6::Grpc) |
| Depuis : | Qt 6.6 |
| En QML : | GrpcCallOptions |
Comparaisons entre les objets `QGrpcCallOptions`
| Catégorie | Types comparables |
|---|---|
| égalité | QGrpcCallOptions |
Fonctions publiques
| QGrpcCallOptions() | |
| QGrpcCallOptions(const QGrpcCallOptions &other) | |
| QGrpcCallOptions(QGrpcCallOptions &&other) | |
| ~QGrpcCallOptions() | |
(since 6.10) QGrpcCallOptions & | addMetadata(QByteArrayView key, QByteArrayView value) |
| std::optional<std::chrono::milliseconds> | deadlineTimeout() const |
(since 6.11) std::optional<bool> | filterServerMetadata() const |
(since 6.12) std::optional<quint64> | maximumReceiveMessageSize() const |
(until 6.13) QHash<QByteArray, QByteArray> | metadata() && |
(until 6.13) const QHash<QByteArray, QByteArray> & | metadata() const & |
(since 6.10) QMultiHash<QByteArray, QByteArray> | metadata(QtGrpc::MultiValue_t) && |
(since 6.10) const QMultiHash<QByteArray, QByteArray> & | metadata(QtGrpc::MultiValue_t) const & |
(since 6.12) std::optional<QtGrpc::CompressionAlgorithm> | requestCompression() const |
| QGrpcCallOptions & | setDeadlineTimeout(std::chrono::milliseconds timeout) |
(since 6.11) QGrpcCallOptions & | setFilterServerMetadata(bool value) |
(since 6.12) QGrpcCallOptions & | setMaximumReceiveMessageSize(quint64 size) |
(until 6.13) QGrpcCallOptions & | setMetadata(QHash<QByteArray, QByteArray> &&metadata) |
(since 6.10) QGrpcCallOptions & | setMetadata(QMultiHash<QByteArray, QByteArray> &&metadata) |
(until 6.13) QGrpcCallOptions & | setMetadata(const QHash<QByteArray, QByteArray> &metadata) |
(since 6.10) QGrpcCallOptions & | setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata) |
(since 6.10) QGrpcCallOptions & | setMetadata(std::initializer_list<std::pair<QByteArray, QByteArray>> metadata) |
(since 6.12) QGrpcCallOptions & | setRequestCompression(QtGrpc::CompressionAlgorithm algorithm) |
(since 6.8) void | swap(QGrpcCallOptions &other) |
(since 6.8) | operator QVariant() const |
| QGrpcCallOptions & | operator=(QGrpcCallOptions &&other) |
| QGrpcCallOptions & | operator=(const QGrpcCallOptions &other) |
Éléments non membres associés
(since 6.11) bool | operator!=(const QGrpcCallOptions &lhs, const QGrpcCallOptions &rhs) |
(since 6.8) QDebug | operator<<(QDebug debug, const QGrpcCallOptions &callOpts) |
(since 6.11) bool | operator==(const QGrpcCallOptions &lhs, const QGrpcCallOptions &rhs) |
Description détaillée
QGrpcCallOptions vous permet de personnaliser chaque appel de procédure à distance (RPC). L'interface client générée fournit des points d'accès permettant de transmettre les options QGrpcCallOptions. Ces options remplacent celles définies via QGrpcChannelOptions.
Pour configurer les options par défaut communes à tous les RPC, utilisez ` QGrpcChannelOptions`.
QGrpcCallOptions callOpts;
// Définir les métadonnées pour un RPC individuel
callOpts.setMetadata({
{ "header" , "value1" },
{ "header" , "value2" },
});
const auto &md = callOpts.metadata(QtGrpc::MultiValue);
qDebug() << "Call Metadata: " << md;
// Définir un délai de 2 secondes pour un appel RPC individuel
callOpts.setDeadlineTimeout(2s);
qDebug() << "Call timeout: " << callOpts.deadlineTimeout();Documentation sur les fonctions des membres
QGrpcCallOptions::QGrpcCallOptions()
Construit par défaut un objet `QGrpcCallOptions` vide.
QGrpcCallOptions::QGrpcCallOptions(const QGrpcCallOptions &other)
Recrée un objet `QGrpcCallOptions` à partir de ` other`.
[constexpr noexcept default] QGrpcCallOptions::QGrpcCallOptions(QGrpcCallOptions &&other)
La fonction `move` construit un nouvel objet `QGrpcCallOptions` à partir de ` other`.
Remarque : l'objet d'origine other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l'affectation d'une nouvelle valeur.
[noexcept] QGrpcCallOptions::~QGrpcCallOptions()
Supprime l'QGrpcCallOptions.
[since 6.10] QGrpcCallOptions &QGrpcCallOptions::addMetadata(QByteArrayView key, QByteArrayView value)
Ajoute key et value à la base de données metadata si cette paire exacte n'y figure pas déjà. Une même clé peut apparaître plusieurs fois avec des valeurs différentes.
Remarque : les clés préfixées par grpc- ou qtgrpc- sont réservées par gRPC™ et QtGrpc. Les entrées les utilisant sont ignorées lors de la construction de la requête. Certains canaux peuvent imposer des restrictions supplémentaires ; voir QGrpcHttp2Channel#Reserved metadata keys.
Remarque : les métadonnéesd’appel sont fusionnées avec les métadonnées au niveau du canal au démarrage du RPC — voir QGrpcChannelOptions::addMetadata()
Cette fonction a été introduite dans Qt 6.10.
Voir également metadata() et setMetadata().
[noexcept] std::optional<std::chrono::milliseconds> QGrpcCallOptions::deadlineTimeout() const
Renvoie la durée du délai d'expiration utilisée pour calculer la date limite des appels RPC.
Si ce champ n'est pas défini, renvoie un objet ` std::optional` vide.
Voir également ` setDeadlineTimeout()`.
[noexcept, since 6.11] std::optional<bool> QGrpcCallOptions::filterServerMetadata() const
Renvoie « true » si les métadonnées du serveur liées au protocole sont exclues du résultat. Renvoie « false » pour inclure toutes les métadonnées reçues du serveur.
Si ce champ n’est pas défini, renvoie un ` std::optional` vide.
Cette fonction a été introduite dans Qt 6.11.
Voir également setFilterServerMetadata() et QGrpcChannelOptions::filterServerMetadata().
[since 6.12] std::optional<quint64> QGrpcCallOptions::maximumReceiveMessageSize() const
Renvoie la taille maximale autorisée, en octets, d'un message gRPC entrant. Cette limite s'applique à la charge utile de la trame gRPC décodée, après le déchiffrement au niveau de la couche de transport et toute décompression spécifique au message.
Si la valeur n'est pas spécifiée, renvoie un objet ` std::optional` vide.
Par défaut, la valeur n’est pas spécifiée.
Remarque : ` QGrpcHttp2Channel ` utilise la variable d’environnement ` QT_GRPC_MAXIMUM_RECEIVE_MESSAGE_SIZE ` comme valeur de secours lorsque cette option n’est pas définie explicitement. Si la variable d’environnement n’est pas définie, la valeur par défaut intégrée de ` 4 ` MiB est utilisée. Voir l{Valeurs de secours des variables d’environnement}.
Cette fonction a été introduite dans Qt 6.12.
Voir également setMaximumReceiveMessageSize() et QGrpcChannelOptions::maximumReceiveMessageSize().
[until 6.13] QHash<QByteArray, QByteArray> QGrpcCallOptions::metadata() &&
[noexcept, until 6.13] const QHash<QByteArray, QByteArray> &QGrpcCallOptions::metadata() const &
Cette fonction sera obsolète à partir de la version 6.13.
Utilisez plutôt la surcharge ` QMultiHash `.
Renvoie les métadonnées. Si ce champ n'est pas défini, renvoie des métadonnées vides.
Remarque : les clés préfixées par « grpc- » ou « qtgrpc- » sont réservées par gRPC et QtGrpc. Les entrées fournies qui les utilisent sont ignorées lors de la construction de la requête. Certains canaux peuvent imposer des restrictions supplémentaires ; voir QGrpcHttp2Channel#Reserved metadata keys.
Voir également setMetadata().
[since 6.10] QMultiHash<QByteArray, QByteArray> QGrpcCallOptions::metadata(QtGrpc::MultiValue_t) &&
[noexcept, since 6.10] const QMultiHash<QByteArray, QByteArray> &QGrpcCallOptions::metadata(QtGrpc::MultiValue_t) const &
Renvoie les métadonnées. Si ce champ n'est pas défini, renvoie des métadonnées vides.
Remarque : les clés préfixées par « grpc- » ou « qtgrpc- » sont réservées par gRPC et QtGrpc. Les entrées fournies utilisant ces préfixes sont ignorées lors de la construction de la requête. Certains canaux peuvent imposer des restrictions supplémentaires ; voir QGrpcHttp2Channel#Reserved metadata keys. Les valeurs multiples par clé sont prises en charge.
const auto &md = opts.metadata(QtGrpc::MultiValue);Ces fonctions ont été introduites dans Qt 6.10.
Voir également setMetadata.
[since 6.12] std::optional<QtGrpc::CompressionAlgorithm> QGrpcCallOptions::requestCompression() const
Renvoie l'algorithme de compression utilisé pour compresser les messages sortants sur ce canal ou cet appel.
Si ce champ n'est pas défini, renvoie un objet ` std::optional` vide.
Cette fonction a été introduite dans Qt 6.12.
Voir également ` setRequestCompression()` et ` QGrpcChannelOptions::requestCompression()`.
QGrpcCallOptions &QGrpcCallOptions::setDeadlineTimeout(std::chrono::milliseconds timeout)
Définit l'timeout e et renvoie une référence à l'objet mis à jour.
Un délai fixe la durée maximale pendant laquelle un client est prêt à attendre une réponse d’un serveur. Le délai réel est calculé en ajoutant l’ timeout à l’heure de début du RPC.
Ce délai s’applique à toute la durée de vie d’un RPC, ce qui inclut la réception de l’ QGrpcStatus finale d’un appel lancé précédemment ; il peut donc s’avérer indésirable pour les flux (de longue durée).
Remarque : la définition de ce champ remplace le champ d’options de canal correspondant — voir QGrpcChannelOptions::setDeadlineTimeout()
Voir également deadlineTimeout().
[since 6.11] QGrpcCallOptions &QGrpcCallOptions::setFilterServerMetadata(bool value)
Si la valeur de value est true, les métadonnées liées au protocole définies par le transport gRPC (telles que les clés réservées grpc- ) seront exclues. Si la valeur de value est false, toutes les métadonnées reçues du serveur seront incluses.
Remarque : la configuration de ce champ remplace le champ d’options de canal correspondant — voir QGrpcChannelOptions::setFilterServerMetadata()
Cette fonction a été introduite dans Qt 6.11.
Voir également filterServerMetadata() et QGrpcChannelOptions::setFilterServerMetadata().
[since 6.12] QGrpcCallOptions &QGrpcCallOptions::setMaximumReceiveMessageSize(quint64 size)
Définit la taille maximale de l'size des messages entrants en octets et renvoie une référence à l'objet mis à jour.
Les messages dépassant cette limite sont rejetés avec une StatusCode::ResourceExhausted avant que leur charge utile ne soit mise en mémoire tampon. La valeur est utilisée telle quelle ; ainsi, une size de type 0 n’accepte que les messages vides.
Remarque : les implémentationsconcrètes des canaux peuvent imposer une limite supérieure stricte à la limite effective. Le transport QGrpcHttp2Channel plafonne la valeur à la taille maximale de la charge utile d’une trame gRPC sur HTTP/2 (2^32 - 1) en octets, ou à la valeur maximale de qsizetype moins l’en-tête de trame gRPC de 5 octets sur les plateformes 32 bits. Toute valeur configurée supérieure est limitée à ce plafond.
Remarque : la configuration de ce champ remplace le champ d’options de canal correspondant — voir QGrpcChannelOptions::setMaximumReceiveMessageSize.
Cette fonction a été introduite dans Qt 6.12.
Voir également maximumReceiveMessageSize() et QGrpcChannelOptions::setMaximumReceiveMessageSize().
[until 6.13] QGrpcCallOptions &QGrpcCallOptions::setMetadata(QHash<QByteArray, QByteArray> &&metadata)
[until 6.13] QGrpcCallOptions &QGrpcCallOptions::setMetadata(const QHash<QByteArray, QByteArray> &metadata)
Cette fonction est prévue pour être obsolète à partir de la version 6.13.
Utilisez plutôt la surcharge de la méthode ` QMultiHash `.
Définit l’ metadata et renvoie une référence à l’objet mis à jour.
Remarque : les clés portant le préfixe « grpc- » ou « qtgrpc- » sont réservées par gRPC et QtGrpc. Les entrées fournies utilisant ces préfixes sont ignorées lors de la construction de la requête. Certains canaux concrets peuvent imposer des restrictions supplémentaires ; voir QGrpcHttp2Channel#Reserved metadata keys.
Remarque : les métadonnéesd’appel sont fusionnées avec les métadonnées au niveau du canal au démarrage du RPC — voir QGrpcChannelOptions::setMetadata(QMultiHash).
Voir également metadata().
[since 6.10] QGrpcCallOptions &QGrpcCallOptions::setMetadata(QMultiHash<QByteArray, QByteArray> &&metadata)
[since 6.10] QGrpcCallOptions &QGrpcCallOptions::setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata)
[since 6.10] QGrpcCallOptions &QGrpcCallOptions::setMetadata(std::initializer_list<std::pair<QByteArray, QByteArray>> metadata)
Définit la propriété « metadata » et renvoie une référence à l'objet mis à jour.
Remarque : les clés préfixées par « grpc- » ou « qtgrpc- » sont réservées par gRPC et QtGrpc. Les entrées fournies utilisant ces préfixes sont ignorées lors de la construction de la requête. Certains canaux concrets peuvent imposer des restrictions supplémentaires ; voir QGrpcHttp2Channel#Reserved metadata keys. Les valeurs multiples par clé sont prises en charge.
Remarque : les métadonnéesd’appel sont fusionnées avec les métadonnées au niveau du canal au démarrage du RPC — voir QGrpcChannelOptions::setMetadata(QMultiHash).
Ces fonctions ont été introduites dans Qt 6.10.
Voir également metadata(QtGrpc::MultiValue_t).
[since 6.12] QGrpcCallOptions &QGrpcCallOptions::setRequestCompression(QtGrpc::CompressionAlgorithm algorithm)
Définit l'algorithm de compression utilisé pour compresser les messages envoyés par le client et renvoie une référence à l'objet mis à jour.
Une fois défini, l’algorithme est indiqué dans l’en-tête de requête « grpc-encoding ». Chaque message est compressé indépendamment ; si la compression ne réduit pas la taille de la charge utile, le message est envoyé non compressé, la valeur de « Compressed-Flag » étant alors définie sur « 0 » dans tous les cas.
Remarque : la compression de messages contenant à la fois des données sensibles et des données susceptibles d’être influencées par un attaquant peut exposer la connexion à des attaques par canal auxiliaire de compression telles que CRIME ou BREACH. Dans la mesure du possible, évitez de compresser ce type de messages ou séparez les données sensibles et non fiables en différentes requêtes.
Remarque : la configuration de ce champ remplace celle du champ « channel options » correspondant.
Cette fonction a été introduite dans Qt 6.12.
Voir également requestCompression() et QGrpcChannelOptions::setRequestCompression().
[noexcept, since 6.8] void QGrpcCallOptions::swap(QGrpcCallOptions &other)
Permute l'other s avec cet objet. Cette opération est très rapide et ne rencontre jamais d'échec.
Cette fonction a été introduite dans Qt 6.8.
[since 6.8] QGrpcCallOptions::operator QVariant() const
Crée un nouvel objet ` QVariant ` à partir de cet objet.
Cette fonction a été introduite dans Qt 6.8.
[noexcept] QGrpcCallOptions &QGrpcCallOptions::operator=(QGrpcCallOptions &&other)
La fonction « move-assign » attribue la valeur de other à cet objet QGrpcCallOptions et renvoie une référence à l'objet mis à jour.
Remarque : l’objet d’origine other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l’affectation d’une nouvelle valeur.
QGrpcCallOptions &QGrpcCallOptions::operator=(const QGrpcCallOptions &other)
Attribue la valeur « other » à cet objet « QGrpcCallOptions » et renvoie une référence à l'objet mis à jour.
Éléments non membres associés
[noexcept, since 6.11] bool operator!=(const QGrpcCallOptions &lhs, const QGrpcCallOptions &rhs)
Renvoie « true » si les valeurs « deadlineTimeout », « filterServerMetadata », « maximumReceiveMessageSize », « requestCompression » et « metadata » (QtGrpc::MultiValue_t) définies dans « lhs » et « rhs » ne sont pas égales.
Cette fonction a été introduite dans Qt 6.11.
[since 6.8] QDebug operator<<(QDebug debug, const QGrpcCallOptions &callOpts)
Écrit callOpts dans le flux spécifié debug.
Cette fonction a été introduite dans Qt 6.8.
[noexcept, since 6.11] bool operator==(const QGrpcCallOptions &lhs, const QGrpcCallOptions &rhs)
Renvoie « true » si les valeurs « deadlineTimeout », « filterServerMetadata », « maximumReceiveMessageSize », « requestCompression » et « metadata » (QtGrpc::MultiValue_t) dans « lhs » et « rhs » sont identiques.
Cette fonction a été introduite dans Qt 6.11.
© 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.