QGrpcCallOptions Class
Die Klasse „QGrpcCallOptions“ bietet verschiedene Optionen zur Feinabstimmung einzelner RPCs. Mehr...
| Header: | #include <QGrpcCallOptions> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Grpc) target_link_libraries(mytarget PRIVATE Qt6::Grpc) |
| Seit: | Qt 6.6 |
| In QML: | GrpcCallOptions |
Vergleiche von „QGrpcCallOptions“
| Kategorie | Vergleichbare Typen |
|---|---|
| Gleichheit | QGrpcCallOptions |
Öffentliche Funktionen
| 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) |
Verwandte Nicht-Mitglieder
(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) |
Ausführliche Beschreibung
Mit QGrpcCallOptions können Sie einzelne Remote Procedure Calls (RPCs) individuell anpassen. Die generierte Client-Schnittstelle bietet Zugriffspunkte zur Übergabe der QGrpcCallOptions. Diese Optionen haben Vorrang vor den über ` QGrpcChannelOptions` festgelegten Optionen.
Um die Standardoptionen zu konfigurieren, die von allen RPCs gemeinsam genutzt werden, verwenden Sie ` QGrpcChannelOptions`.
QGrpcCallOptions callOpts;
// Metadaten für einen einzelnen RPC festlegen
callOpts.setMetadata({
{ „header“ , „value1“ },
{ „header“ , „value2“ },
});
const auto &md = callOpts.metadata(QtGrpc::MultiValue);
qDebug() << "Call Metadata: " << md;
// Eine Frist von 2 Sekunden für einen einzelnen RPC festlegen
callOpts.setDeadlineTimeout(2s);
qDebug() << "Call timeout: " << callOpts.deadlineTimeout();Dokumentation zu Member-Funktionen
QGrpcCallOptions::QGrpcCallOptions()
Erstellt standardmäßig ein leeres `QGrpcCallOptions`-Objekt.
QGrpcCallOptions::QGrpcCallOptions(const QGrpcCallOptions &other)
Erstellt eine Kopie eines `QGrpcCallOptions`-Objekts aus ` other`.
[constexpr noexcept default] QGrpcCallOptions::QGrpcCallOptions(QGrpcCallOptions &&other)
Erstellt mithilfe von „Move“ ein neues „QGrpcCallOptions“-Objekt aus „ other “.
Hinweis: Das Objekt „ other “, aus dem die Zuweisung erfolgt, befindet sich in einem teilweise initialisierten Zustand, in dem die einzigen zulässigen Operationen die Zerstörung und die Zuweisung eines neuen Werts sind.
[noexcept] QGrpcCallOptions::~QGrpcCallOptions()
Zerstört das „ QGrpcCallOptions “.
[since 6.10] QGrpcCallOptions &QGrpcCallOptions::addMetadata(QByteArrayView key, QByteArrayView value)
Fügt „ key “ und „ value “ zur „ metadata “ hinzu, sofern das genaue Paar dort noch nicht enthalten ist. Ein und derselbe Schlüssel kann mehrfach mit unterschiedlichen Werten vorkommen.
Hinweis: Schlüssel mit dem Präfix grpc- oder qtgrpc- sind für gRPC™ und QtGrpc reserviert. Entsprechende Einträge, die diese verwenden, werden beim Aufbau der Anfrage ignoriert. Konkrete Kanäle können weitere Einschränkungen auferlegen; siehe QGrpcHttp2Channel#Reserved metadata keys.
Hinweis: Aufrufmetadaten werden beim Start des RPC mit etwaigen Metadaten auf Kanalebene zusammengeführt – siehe QGrpcChannelOptions::addMetadata()
Diese Funktion wurde in Qt 6.10 eingeführt.
Siehe auch metadata() und setMetadata().
[noexcept] std::optional<std::chrono::milliseconds> QGrpcCallOptions::deadlineTimeout() const
Gibt die Zeitüberschreitungsdauer zurück, die zur Berechnung der Frist für RPCs verwendet wird.
Wenn dieses Feld nicht gesetzt ist, wird ein leeres ` std::optional` zurückgegeben.
Siehe auch ` setDeadlineTimeout()` .
[noexcept, since 6.11] std::optional<bool> QGrpcCallOptions::filterServerMetadata() const
Gibt „ true “ zurück, wenn protokollbezogene Server-Metadaten aus dem Ergebnis ausgeschlossen werden. Gibt „ false “ zurück, um alle vom Server empfangenen Metadaten einzubeziehen.
Ist dieses Feld nicht gesetzt, wird ein leeres ` std::optional` zurückgegeben.
Diese Funktion wurde in Qt 6.11 eingeführt.
Siehe auch „ setFilterServerMetadata()“ und „ QGrpcChannelOptions::filterServerMetadata()“.
[since 6.12] std::optional<quint64> QGrpcCallOptions::maximumReceiveMessageSize() const
Gibt die maximal zulässige Größe einer eingehenden gRPC-Nachricht in Byte zurück. Die Begrenzung gilt für die Nutzdaten des dekodierten gRPC-Frames nach der Entschlüsselung auf Transportebene und einer etwaigen Dekomprimierung pro Nachricht.
Wenn der Wert nicht angegeben wird, wird ein leeres ` std::optional` zurückgegeben.
Standardmäßig wird der Wert nicht angegeben.
Hinweis: „ QGrpcHttp2Channel “ verwendet die Umgebungsvariable „ QT_GRPC_MAXIMUM_RECEIVE_MESSAGE_SIZE “ als Ausweichwert, wenn diese Option nicht explizit festgelegt ist. Ist die Umgebungsvariable nicht gesetzt, wird der integrierte Standardwert von 4 MiB verwendet. Siehe l{Ausweichwerte für Umgebungsvariablen}.
Diese Funktion wurde in Qt 6.12 eingeführt.
Siehe auch „ setMaximumReceiveMessageSize()“ und „ QGrpcChannelOptions::maximumReceiveMessageSize()“.
[until 6.13] QHash<QByteArray, QByteArray> QGrpcCallOptions::metadata() &&
[noexcept, until 6.13] const QHash<QByteArray, QByteArray> &QGrpcCallOptions::metadata() const &
Diese Funktion soll in Version 6.13 als veraltet markiert werden.
Verwenden Sie stattdessen die Überladung „ QMultiHash “.
Gibt die Metadaten zurück. Ist dieses Feld nicht gesetzt, werden leere Metadaten zurückgegeben.
Hinweis: Schlüssel mit dem Präfix „ grpc- “ oder „ qtgrpc- “ sind von 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 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 &
Gibt die Metadaten zurück. Ist dieses Feld nicht gesetzt, werden leere Metadaten zurückgegeben.
Hinweis: Schlüssel mit den Präfixen „ grpc- “ oder „ qtgrpc- “ sind für gRPC und QtGrpc reserviert. Bei der Erstellung der Anfrage werden Einträge, die diese Präfixe verwenden, ignoriert. Konkrete Kanäle können weitere Einschränkungen auferlegen; siehe QGrpcHttp2Channel#Reserved metadata keys. Mehrere Werte pro Schlüssel werden unterstützt.
const auto &md = opts.metadata(QtGrpc::MultiValue);Diese Funktionen wurden in Qt 6.10 eingeführt.
Siehe auch setMetadata.
[since 6.12] std::optional<QtGrpc::CompressionAlgorithm> QGrpcCallOptions::requestCompression() const
Gibt den Komprimierungsalgorithmus zurück, der zum Komprimieren ausgehender Nachrichten auf diesem Kanal oder bei diesem Anruf verwendet wird.
Ist dieses Feld nicht gesetzt, wird ein leeres ` std::optional` zurückgegeben.
Diese Funktion wurde in Qt 6.12 eingeführt.
Siehe auch ` setRequestCompression()` und ` QGrpcChannelOptions::requestCompression()`.
QGrpcCallOptions &QGrpcCallOptions::setDeadlineTimeout(std::chrono::milliseconds timeout)
Legt den „ timeout “ fest und gibt eine Referenz auf das aktualisierte Objekt zurück.
Eine Frist legt fest, wie lange ein Client bereit ist, auf eine Antwort vom Server zu warten. Die tatsächliche Frist wird berechnet, indem die „ timeout “ zur Startzeit des RPC addiert wird.
Die Frist gilt für die gesamte Laufzeit eines RPC, was auch den Empfang des abschließenden ` QGrpcStatus ` für einen zuvor gestarteten Aufruf einschließt, und kann daher für (lang andauernde) Streams unerwünscht sein.
Hinweis: Die Einstellung dieses Feldes überschreibt das entsprechende Feld „channel options“ – siehe ` QGrpcChannelOptions::setDeadlineTimeout()`
Siehe auch ` deadlineTimeout()`
[since 6.11] QGrpcCallOptions &QGrpcCallOptions::setFilterServerMetadata(bool value)
Wenn „ value “ auf „ true “ gesetzt ist, werden protokollbezogene Metadaten, die durch den gRPC-Transport definiert sind (wie beispielsweise reservierte „ grpc- “-Schlüssel), ausgeschlossen. Wenn „ value “ auf „ false “ gesetzt ist, werden alle vom Server empfangenen Metadaten einbezogen.
Hinweis: Die Einstellung dieses Feldes überschreibt das entsprechende Feld „channel options“ – siehe QGrpcChannelOptions::setFilterServerMetadata()
Diese Funktion wurde in Qt 6.11 eingeführt.
Siehe auch filterServerMetadata() und QGrpcChannelOptions::setFilterServerMetadata().
[since 6.12] QGrpcCallOptions &QGrpcCallOptions::setMaximumReceiveMessageSize(quint64 size)
Legt die maximale Größe der eingehenden Nachrichten size in Byte fest und gibt eine Referenz auf das aktualisierte Objekt zurück.
Nachrichten, die diese Grenze überschreiten, werden mit „ StatusCode::ResourceExhausted “ abgelehnt, bevor ihre Nutzdaten gepuffert werden. Der Wert wird wörtlich übernommen, sodass ein „ size “ von „ 0 “ nur leere Nachrichten akzeptiert.
Hinweis: Konkrete Kanalimplementierungen können eine feste Obergrenze für das effektive Limit festlegen. Der „ QGrpcHttp2Channel “-Transport begrenzt den Wert auf die maximale gRPC-over-HTTP/2-Frame-Nutzlast (2^32 - 1) in Byte oder auf das Maximum von qsizetype abzüglich des 5-Byte-gRPC-Frame-Headers auf 32-Bit-Plattformen. Ein höher konfigurierter Wert wird auf diese Obergrenze begrenzt.
Hinweis: Die Einstellung dieses Feldes überschreibt das entsprechende Feld für Kanaloptionen – siehe QGrpcChannelOptions::setMaximumReceiveMessageSize.
Diese Funktion wurde in Qt 6.12 eingeführt.
Siehe auch maximumReceiveMessageSize() und QGrpcChannelOptions::setMaximumReceiveMessageSize().
[until 6.13] QGrpcCallOptions &QGrpcCallOptions::setMetadata(QHash<QByteArray, QByteArray> &&metadata)
[until 6.13] QGrpcCallOptions &QGrpcCallOptions::setMetadata(const QHash<QByteArray, QByteArray> &metadata)
Diese Funktion soll in Version 6.13 als veraltet markiert werden.
Verwenden Sie stattdessen die Überladung „ QMultiHash “.
Setzt die Eigenschaft „ metadata “ und gibt eine Referenz auf das aktualisierte Objekt zurück.
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.
Hinweis: Aufrufmetadaten werden beim Start des RPC mit etwaigen Metadaten auf Kanalebene zusammengeführt – siehe QGrpcChannelOptions::setMetadata(QMultiHash).
Siehe auch 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)
Setzt die Eigenschaft „ metadata “ und gibt eine Referenz auf das aktualisierte Objekt zurück.
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. Mehrere Werte pro Schlüssel werden unterstützt.
Hinweis: Aufrufmetadaten werden beim Start des RPC mit etwaigen Metadaten auf Kanalebene zusammengeführt – siehe QGrpcChannelOptions::setMetadata(QMultiHash).
Diese Funktionen wurden in Qt 6.10 eingeführt.
Siehe auch metadata(QtGrpc::MultiValue_t).
[since 6.12] QGrpcCallOptions &QGrpcCallOptions::setRequestCompression(QtGrpc::CompressionAlgorithm algorithm)
Legt das Komprimierungs algorithm fest, das zum Komprimieren der vom Client gesendeten Nachrichten verwendet wird, und gibt eine Referenz auf das aktualisierte Objekt zurück.
Wenn dieser Wert festgelegt ist, wird der Algorithmus im Header „ grpc-encoding “ der Anfrage angegeben. Jede Nachricht wird unabhängig komprimiert; wenn die Komprimierung die Nutzdatengröße nicht verringert, wird die Nachricht ungeachtet dessen unkomprimiert gesendet, wobei „ Compressed-Flag “ auf „ 0 “ gesetzt ist.
Hinweis: Die Komprimierung von Nachrichten, die sowohl sensible Daten als auch Daten enthalten, die potenziell von einem Angreifer beeinflusst werden könnten, kann die Verbindung für Komprimierungs-Seitenkanalangriffe wie CRIME oder BREACH anfällig machen. Vermeiden Sie nach Möglichkeit die Komprimierung solcher Nachrichten oder trennen Sie sensible und nicht vertrauenswürdige Daten in verschiedene Anfragen auf.
Hinweis: Die Einstellung dieses Feldes überschreibt das entsprechende Feld „channel options“.
Diese Funktion wurde in Qt 6.12 eingeführt.
Siehe auch requestCompression() und QGrpcChannelOptions::setRequestCompression().
[noexcept, since 6.8] void QGrpcCallOptions::swap(QGrpcCallOptions &other)
Tauscht „ other “ gegen dieses Objekt aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.
Diese Funktion wurde in Qt 6.8 eingeführt.
[since 6.8] QGrpcCallOptions::operator QVariant() const
Erstellt aus diesem Objekt ein neues ` QVariant `.
Diese Funktion wurde in Qt 6.8 eingeführt.
[noexcept] QGrpcCallOptions &QGrpcCallOptions::operator=(QGrpcCallOptions &&other)
Die Move-Zuweisung weist „ other “ diesem „ QGrpcCallOptions “ zu und gibt eine Referenz auf das aktualisierte Objekt zurück.
Hinweis: Das Objekt, aus dem verschoben wurde ( other ), befindet sich in einem teilweise initialisierten Zustand, in dem nur die Zerstörung und die Zuweisung eines neuen Werts zulässig sind.
QGrpcCallOptions &QGrpcCallOptions::operator=(const QGrpcCallOptions &other)
Weist „ other “ diesem „ QGrpcCallOptions “ zu und gibt eine Referenz auf das aktualisierte Objekt zurück.
Verwandte Nicht-Mitglieder
[noexcept, since 6.11] bool operator!=(const QGrpcCallOptions &lhs, const QGrpcCallOptions &rhs)
Gibt „ true “ zurück, wenn die Werte „ deadlineTimeout “, „ filterServerMetadata “, „ maximumReceiveMessageSize “, „ requestCompression “ und „ metadata “ (QtGrpc::MultiValue_t) in „ lhs “ und „ rhs “ nicht identisch sind.
Diese Funktion wurde in Qt 6.11 eingeführt.
[since 6.8] QDebug operator<<(QDebug debug, const QGrpcCallOptions &callOpts)
Schreibt „ callOpts “ in den angegebenen Stream „ debug “.
Diese Funktion wurde in Qt 6.8 eingeführt.
[noexcept, since 6.11] bool operator==(const QGrpcCallOptions &lhs, const QGrpcCallOptions &rhs)
Gibt „ true “ zurück, wenn die Werte „ deadlineTimeout “, „ filterServerMetadata “, „ maximumReceiveMessageSize “, „ requestCompression “ und „ metadata “ (QtGrpc::MultiValue_t) in „ lhs “ und „ rhs “ identisch sind.
Diese Funktion wurde in Qt 6.11 eingeführt.
© 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.