QGrpcCallOptions Class
QGrpcCallOptions クラスは、個々の RPC を微調整するためのさまざまなオプションを提供します。詳細...
| ヘッダー: | #include <QGrpcCallOptions> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Grpc) target_link_libraries(mytarget PRIVATE Qt6::Grpc) |
| 以下より: | Qt 6.6 |
| QMLでは: | GrpcCallOptions |
QGrpcCallOptions の比較
| カテゴリ | 比較可能な型 |
|---|---|
| 等価性 | QGrpcCallOptions |
パブリック関数
| 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) |
関連する非メンバー
(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) |
詳細説明
QGrpcCallOptions を使用すると、個々のリモートプロシージャコール (RPC) をカスタマイズできます。生成されたクライアントインターフェースには、QGrpcCallOptions を渡すためのアクセスポイントが用意されています。これらのオプションは、QGrpcChannelOptions を通じて設定されたオプションよりも優先されます。
RPC間で共有されるデフォルトのオプションを設定するには、QGrpcChannelOptions を使用してください。
QGrpcCallOptions callOpts;
// 個々のRPCのメタデータを設定する
callOpts.setMetadata({
{"header" , "value1"},
{"header" , "value2"},
});
const auto &md =callOpts.metadata(QtGrpc::MultiValue);
qDebug() << "Call Metadata: " << md;
// 個々の RPC に対して 2 秒のタイムアウトを設定する
callOpts.setDeadlineTimeout(2s);
qDebug() << "Call timeout: " << callOpts.deadlineTimeout();メンバー関数のドキュメント
QGrpcCallOptions::QGrpcCallOptions()
空の QGrpcCallOptions をデフォルトで生成します。
QGrpcCallOptions::QGrpcCallOptions(const QGrpcCallOptions &other)
other から QGrpcCallOptions をコピーして生成します。
[constexpr noexcept default] QGrpcCallOptions::QGrpcCallOptions(QGrpcCallOptions &&other)
other から新しい QGrpcCallOptions を移動生成します。
注:移動元のオブジェクト `other `は 、部分的に形成された状態になります。この状態では、有効な操作は破棄と新しい値への代入のみです。
[noexcept] QGrpcCallOptions::~QGrpcCallOptions()
QGrpcCallOptions を削除します。
[since 6.10] QGrpcCallOptions &QGrpcCallOptions::addMetadata(QByteArrayView key, QByteArrayView value)
metadata に、key およびvalue がまだ含まれていない場合、これらを追加します。同じキーが異なる値で複数回出現することがあります。
注: grpc- またはqtgrpc- という接頭辞を持つキーは 、 gRPC™ およびQtGrpc によって予約されています。これらを使用したエントリは、リクエストの構築時に無視されます。具体的なチャネルによっては、さらなる制限が課される場合があります。QGrpcHttp2Channel#Reserved metadata keys を参照してください。
注: RPCの開始時に、呼び出し メタデータはチャネルレベルのメタデータとマージされます。詳細はQGrpcChannelOptions::addMetadata() を参照してください。
この関数は Qt 6.10 で導入されました。
metadata() およびsetMetadata()も参照してください 。
[noexcept] std::optional<std::chrono::milliseconds> QGrpcCallOptions::deadlineTimeout() const
RPCの期限を計算するために使用されるタイムアウト期間を返します。
このフィールドが設定されていない場合、空のstd::optional を返します。
setDeadlineTimeout()も参照してください 。
[noexcept, since 6.11] std::optional<bool> QGrpcCallOptions::filterServerMetadata() const
結果からプロトコル関連のサーバーメタデータが除外されている場合は、true を返します。サーバーから受信したすべてのメタデータを含める場合は、false を返します。
このフィールドが設定されていない場合、空の `std::optional` を返します。
この関数は Qt 6.11 で導入されました。
setFilterServerMetadata() およびQGrpcChannelOptions::filterServerMetadata()も参照してください 。
[since 6.12] std::optional<quint64> QGrpcCallOptions::maximumReceiveMessageSize() const
受信した gRPC メッセージの最大許容サイズ(バイト単位)を返します。この制限は、トランスポートレベルの復号およびメッセージごとの解凍処理を経た後の、デコード済み gRPC フレームのペイロードに適用されます。
値が指定されていない場合、空のstd::optional を返します。
デフォルトでは、値は指定されません。
注: QGrpcHttp2Channel は 、このオプションが明示的に設定されていない場合、フォールバックとしてQT_GRPC_MAXIMUM_RECEIVE_MESSAGE_SIZE 環境変数を使用します。環境変数が設定されていない場合は、組み込みのデフォルト値である4 MiBが使用されます。l{環境変数のフォールバック}を参照してください。
この関数は Qt 6.12 で導入されました。
setMaximumReceiveMessageSize() およびQGrpcChannelOptions::maximumReceiveMessageSize()も参照してください 。
[until 6.13] QHash<QByteArray, QByteArray> QGrpcCallOptions::metadata() &&
[noexcept, until 6.13] const QHash<QByteArray, QByteArray> &QGrpcCallOptions::metadata() const &
この関数は、バージョン 6.13 で非推奨となる予定です。
代わりに、QMultiHash のオーバーロードを使用してください。
メタデータを返します。このフィールドが設定されていない場合は、空のメタデータを返します。
注: grpc- またはqtgrpc- というプレフィックスを持つキーは 、gRPC およびQtGrpc によって予約されています。これらを使用したエントリは、リクエストの構築時に無視されます。具体的なチャネルによっては、さらに制限が課される場合があります。QGrpcHttp2Channel#Reserved metadata keys を参照してください。
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 &
メタデータを返します。このフィールドが設定されていない場合は、空のメタデータを返します。
注: grpc- またはqtgrpc- というプレフィックスを持つキーは 、gRPC およびQtGrpc によって予約されています。これらを使用したエントリは、リクエストの構築時に無視されます。具体的なチャネルによっては、さらに制限が課される場合があります。詳細はQGrpcHttp2Channel#Reserved metadata keys を参照してください。1つのキーに対して複数の値を指定することが可能です。
const auto &md = opts.metadata(QtGrpc::MultiValue);これらの関数は Qt 6.10 で導入されました。
setMetadataも参照してください 。
[since 6.12] std::optional<QtGrpc::CompressionAlgorithm> QGrpcCallOptions::requestCompression() const
このチャネルまたはコールにおいて、送信メッセージの圧縮に使用された圧縮アルゴリズムを返します。
このフィールドが設定されていない場合、空のstd::optional を返します。
この関数は Qt 6.12 で導入されました。
setRequestCompression() およびQGrpcChannelOptions::requestCompression()も参照してください 。
QGrpcCallOptions &QGrpcCallOptions::setDeadlineTimeout(std::chrono::milliseconds timeout)
timeout を設定し、更新されたオブジェクトへの参照を返します。
デッドラインは、クライアントがサーバーからの応答を待機する上限時間を設定します。実際のデッドラインは、timeout にRPCの開始時刻を加算して算出されます。
デッドラインはRPCの全ライフサイクルに適用されます。これには、以前に開始された呼び出しの最終的なQGrpcStatus の受信も含まれるため、(長期間実行される)ストリームでは望ましくない場合があります。
注: このフィールドを設定すると 、対応するチャネルオプションフィールドの設定が上書きされます。QGrpcChannelOptions::setDeadlineTimeout() を参照してください。
関連項目 :deadlineTimeout()
[since 6.11] QGrpcCallOptions &QGrpcCallOptions::setFilterServerMetadata(bool value)
value がtrue の場合、gRPCトランスポートによって定義されたプロトコル関連のメタデータ(予約済みのgrpc- キーなど)は除外されます。value がfalse の場合、サーバーから受信したすべてのメタデータが含まれます。
注: このフィールドを設定すると 、対応するchannel optionsフィールドの設定が上書きされます—QGrpcChannelOptions::setFilterServerMetadata()を参照してください
この関数は Qt 6.11 で導入されました。
filterServerMetadata() およびQGrpcChannelOptions::setFilterServerMetadata()も参照してください 。
[since 6.12] QGrpcCallOptions &QGrpcCallOptions::setMaximumReceiveMessageSize(quint64 size)
受信メッセージのsize の上限をバイト単位で設定し、更新されたオブジェクトへの参照を返します。
この制限を超えるメッセージは、ペイロードがバッファに格納される前にStatusCode::ResourceExhausted で拒否されます。この値はそのまま使用されるため、size に0 を指定すると、空のメッセージのみを受け入れます。
注: 具体的な チャネル実装によっては、実効的な制限に厳格な上限が課される場合があります。QGrpcHttp2Channel トランスポートは、この値をgRPC-over-HTTP/2フレームの最大ペイロード(2^32 - 1 )バイト数、あるいは32ビットプラットフォームではqsizetype の最大値から5バイトのgRPCフレームヘッダーを差し引いた値に制限します。 設定値がこれを超える場合は、その上限値にクリップされます。
注: このフィールドを設定すると 、対応するチャネルオプションフィールドの設定が上書きされます—QGrpcChannelOptions::setMaximumReceiveMessageSize を参照してください。
この関数は Qt 6.12 で導入されました。
maximumReceiveMessageSize() およびQGrpcChannelOptions::setMaximumReceiveMessageSize()も参照してください 。
[until 6.13] QGrpcCallOptions &QGrpcCallOptions::setMetadata(QHash<QByteArray, QByteArray> &&metadata)
[until 6.13] QGrpcCallOptions &QGrpcCallOptions::setMetadata(const QHash<QByteArray, QByteArray> &metadata)
この関数は、バージョン 6.13 で非推奨となる予定です。
代わりに、QMultiHash のオーバーロードを使用してください。
metadata を設定し、更新されたオブジェクトへの参照を返します。
注: grpc- またはqtgrpc- という接頭辞を持つキーは 、gRPC およびQtGrpc によって予約されています。これらを使用したエントリは、リクエストの構築時に無視されます。具体的なチャネルによっては、さらに制限が課される場合があります。QGrpcHttp2Channel#Reserved metadata keys を参照してください。
注: RPCの開始時に、呼び出し メタデータはチャネルレベルのメタデータとマージされます。詳細はQGrpcChannelOptions::setMetadata(QMultiHash) を参照してください。
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)
metadata を設定し、更新されたオブジェクトへの参照を返します。
注: grpc- またはqtgrpc- というプレフィックスを持つキーは 、gRPC およびQtGrpc によって予約されています。これらを使用したエントリは、リクエストの構築時に無視されます。具体的なチャネルによっては、さらに制限が課される場合があります。詳細はQGrpcHttp2Channel#Reserved metadata keys を参照してください。1つのキーに対する複数の値がサポートされています。
注: RPC が開始される際、呼び出し メタデータはチャネルレベルのメタデータとマージされます。詳細はQGrpcChannelOptions::setMetadata(QMultiHash) を参照してください。
これらの関数は Qt 6.10 で導入されました。
metadata(QtGrpc::MultiValue_t)も参照してください 。
[since 6.12] QGrpcCallOptions &QGrpcCallOptions::setRequestCompression(QtGrpc::CompressionAlgorithm algorithm)
クライアントから送信されるメッセージの圧縮に使用される圧縮方式(algorithm )を設定し、更新されたオブジェクトへの参照を返します。
設定されると、アルゴリズムはgrpc-encoding リクエストヘッダーで通知されます。各メッセージは個別に圧縮されます。圧縮によってペイロードサイズが縮小されない場合、Compressed-Flag が0 に設定されていても、メッセージは圧縮されずに送信されます。
注: 機密データと、攻撃者によって改ざんされる可能性のあるデータの両方を含むメッセージを圧縮すると 、CRIMEやBREACHなどの圧縮サイドチャネル攻撃に対して接続がさらされる可能性があります。可能であれば、そのようなメッセージの圧縮を避けるか、機密データと信頼できないデータを別々のリクエストに分けて送信してください。
注: このフィールドを設定すると 、対応するチャネルオプションフィールドの設定が上書きされます。
この関数は Qt 6.12 で導入されました。
関連項目: requestCompression() およびQGrpcChannelOptions::setRequestCompression()。
[noexcept, since 6.8] void QGrpcCallOptions::swap(QGrpcCallOptions &other)
other をこのオブジェクトとスワップします。この操作は非常に高速で、失敗することはありません。
この関数は Qt 6.8 で導入されました。
[since 6.8] QGrpcCallOptions::operator QVariant() const
このオブジェクトから新しいQVariant を生成します。
この関数は Qt 6.8 で導入されました。
[noexcept] QGrpcCallOptions &QGrpcCallOptions::operator=(QGrpcCallOptions &&other)
other をこのQGrpcCallOptions に移動代入し、更新されたオブジェクトへの参照を返します。
注: 移動元のオブジェクト other は 、部分的に形成された状態になります。この状態では、破壊と新しい値への代入のみが有効な操作となります。
QGrpcCallOptions &QGrpcCallOptions::operator=(const QGrpcCallOptions &other)
この `QGrpcCallOptions ` に `other ` を割り当て、更新されたオブジェクトへの参照を返します。
関連する非メンバー
[noexcept, since 6.11] bool operator!=(const QGrpcCallOptions &lhs, const QGrpcCallOptions &rhs)
lhs およびrhs 内のdeadlineTimeout 、filterServerMetadata 、maximumReceiveMessageSize 、requestCompression 、およびmetadata (QtGrpc::MultiValue_t)が等しくない場合、true を返します。
この関数は Qt 6.11 で導入されました。
[since 6.8] QDebug operator<<(QDebug debug, const QGrpcCallOptions &callOpts)
指定されたストリームdebug にcallOpts を書き込みます。
この関数は Qt 6.8 で導入されました。
[noexcept, since 6.11] bool operator==(const QGrpcCallOptions &lhs, const QGrpcCallOptions &rhs)
lhs およびrhs 内のdeadlineTimeout 、filterServerMetadata 、maximumReceiveMessageSize 、requestCompression 、metadata (QtGrpc::MultiValue_t)が等しい場合、true を返します。
この関数は 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.