このページでは

QGrpcChannelOptions Class

QGrpcChannelOptions クラスは、gRPC チャネルを微調整するためのさまざまなオプションを提供します。詳細...

ヘッダー: #include <QGrpcChannelOptions>
CMake: find_package(Qt6 REQUIRED COMPONENTS Grpc)
target_link_libraries(mytarget PRIVATE Qt6::Grpc)
以下より: Qt 6.6
QMLでは: GrpcChannelOptions

QGrpcChannelOptions の比較

カテゴリ比較可能な型
等価性QGrpcChannelOptions

パブリック関数

QGrpcChannelOptions()
QGrpcChannelOptions(const QGrpcChannelOptions &other)
QGrpcChannelOptions(QGrpcChannelOptions &&other)
~QGrpcChannelOptions()
(since 6.12) QtGrpc::CompressionAlgorithms acceptedCompressionAlgorithms() const
(since 6.10) QGrpcChannelOptions &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
(since 6.8) QGrpcSerializationFormat serializationFormat() const
(since 6.12) QGrpcChannelOptions &setAcceptedCompressionAlgorithms(QtGrpc::CompressionAlgorithms algorithms)
QGrpcChannelOptions &setDeadlineTimeout(std::chrono::milliseconds timeout)
(since 6.11) QGrpcChannelOptions &setFilterServerMetadata(bool value)
(since 6.12) QGrpcChannelOptions &setMaximumReceiveMessageSize(quint64 size)
(until 6.13) QGrpcChannelOptions &setMetadata(QHash<QByteArray, QByteArray> &&metadata)
(since 6.10) QGrpcChannelOptions &setMetadata(QMultiHash<QByteArray, QByteArray> &&metadata)
(until 6.13) QGrpcChannelOptions &setMetadata(const QHash<QByteArray, QByteArray> &metadata)
(since 6.10) QGrpcChannelOptions &setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata)
(since 6.10) QGrpcChannelOptions &setMetadata(std::initializer_list<std::pair<QByteArray, QByteArray>> list)
(since 6.12) QGrpcChannelOptions &setRequestCompression(QtGrpc::CompressionAlgorithm algorithm)
(since 6.8) QGrpcChannelOptions &setSerializationFormat(const QGrpcSerializationFormat &format)
QGrpcChannelOptions &setSslConfiguration(const QSslConfiguration &sslConfiguration)
std::optional<QSslConfiguration> sslConfiguration() const
(since 6.8) void swap(QGrpcChannelOptions &other)
(since 6.8) operator QVariant() const
QGrpcChannelOptions &operator=(QGrpcChannelOptions &&other)
QGrpcChannelOptions &operator=(const QGrpcChannelOptions &other)

静的パブリックメンバー

(since 6.12) QtGrpc::CompressionAlgorithms supportedCompressionAlgorithms()
(since 6.11) bool operator!=(const QGrpcChannelOptions &lhs, const QGrpcChannelOptions &rhs)
(since 6.8) QDebug operator<<(QDebug debug, const QGrpcChannelOptions &chOpts)
(since 6.11) bool operator==(const QGrpcChannelOptions &lhs, const QGrpcChannelOptions &rhs)

詳細説明

QGrpcChannelOptions を使用すると、 gRPC™ チャネルをカスタマイズできます。一部のオプションは、サービスとの通信に使用される関連付けられたチャネル上で動作するすべてのリモートプロシージャコール(RPC)に適用されます。

特定のRPCのオプションを上書きするには、QGrpcCallOptions を使用します。

QGrpcChannelOptions channelOpts;
// すべてのRPCに共通のメタデータを適用
channelOpts.setMetadata({
    {"header" , "value1"},
    {"header" , "value2"},
});
const auto &md =channelOpts.metadata(QtGrpc::MultiValue);
qDebug() << "Channel Metadata: " << md;

// すべてのRPCに2秒のタイムアウトを設定する
channelOpts.setDeadlineTimeout(2s);
qDebug() << "Channel timeout: " << channelOpts.deadlineTimeout();

// SSL/TLSの設定を行う
channelOpts.setSslConfiguration(QSslConfiguration());

注: これらのオプションの詳細については、チャネルの実装によって決定されます 。

メンバ関数のドキュメント

QGrpcChannelOptions::QGrpcChannelOptions()

空の QGrpcChannelOptions をデフォルトで生成します。

QGrpcChannelOptions::QGrpcChannelOptions(const QGrpcChannelOptions &other)

other から QGrpcChannelOptions をコピーして作成します。

[constexpr noexcept default] QGrpcChannelOptions::QGrpcChannelOptions(QGrpcChannelOptions &&other)

other から新しい QGrpcChannelOptions を移動生成します。

注: 移動元のオブジェクト other は 、部分的に形成された状態となり、この状態では破棄と新しい値への代入のみが有効な操作となります。

[noexcept] QGrpcChannelOptions::~QGrpcChannelOptions()

QGrpcChannelOptions を削除します。

[since 6.12] QtGrpc::CompressionAlgorithms QGrpcChannelOptions::acceptedCompressionAlgorithms() const

このチャネルがサーバーから受け入れることができる圧縮アルゴリズムを返します。gRPC 仕様では非圧縮メッセージの受け入れが義務付けられているため、このセットには常にIdentity が含まれます。

この値は、grpc-accept-encoding リクエストヘッダーの構築に使用されます。サーバーがこのセットに含まれていない圧縮アルゴリズムで応答した場合、呼び出しはUnimplemented ステータスコードで終了します。

デフォルトでは、これは `supportedCompressionAlgorithms()` です。つまり、現在の Qt ビルドがネゴシエーション可能なすべてのアルゴリズムが通知されます。

この関数は Qt 6.12 で導入されました。

setAcceptedCompressionAlgorithms() およびsupportedCompressionAlgorithms()も参照してください 。

[since 6.10] QGrpcChannelOptions &QGrpcChannelOptions::addMetadata(QByteArrayView key, QByteArrayView value)

metadata に、key およびvalue がまだ含まれていない場合、これらを追加します。同じキーが異なる値で複数回出現することがあります。

注: grpc- またはqtgrpc- で始まるキーは 、gRPC およびQtGrpc によって予約されています。これらを使用して指定されたエントリは、リクエストの構築時に無視されます。具体的なチャネルによっては、さらなる制限が課される場合があります。QGrpcHttp2Channel#Reserved metadata keys を参照してください。

注:この メタデータは、チャネルを介して行われるすべての RPC に含まれます。チャネルメタデータは、RPC の開始時に呼び出し固有のメタデータとマージされます。詳細はQGrpcCallOptions::addMetadata() を参照してください。

この関数は Qt 6.10 で導入されました。

metadata() およびsetMetadata()も参照してください 。

[noexcept] std::optional<std::chrono::milliseconds> QGrpcChannelOptions::deadlineTimeout() const

チャネルの期限を計算するために使用されるタイムアウト時間を返します。

このフィールドが設定されていない場合、空のstd::optional を返します。

setDeadlineTimeout()も参照してください 。

[noexcept, since 6.11] std::optional<bool> QGrpcChannelOptions::filterServerMetadata() const

結果からプロトコル関連のサーバーメタデータが除外されている場合は、true を返します。サーバーから受信したすべてのメタデータを含める場合は、false を返します。

このフィールドが設定されていない場合、空の `std::optional` を返します。

この関数は Qt 6.11 で導入されました。

setFilterServerMetadata() およびQGrpcCallOptions::filterServerMetadata()も参照してください 。

[since 6.12] std::optional<quint64> QGrpcChannelOptions::maximumReceiveMessageSize() const

受信した gRPC メッセージの最大許容サイズ(バイト単位)を返します。この制限は、トランスポートレベルの復号およびメッセージごとの解凍処理を経た後の、デコード済みの gRPC フレームのペイロードに適用されます。

値が指定されていない場合は、空のstd::optional を返します。

デフォルトでは、値は指定されません。

注: QGrpcHttp2Channel は 、このオプションが明示的に設定されていない場合、フォールバックとしてQT_GRPC_MAXIMUM_RECEIVE_MESSAGE_SIZE 環境変数を使用します。環境変数が設定されていない場合は、組み込みのデフォルト値である4 MiBが使用されます。l{環境変数のフォールバック}を参照してください。

この関数は Qt 6.12 で導入されました。

setMaximumReceiveMessageSize() およびQGrpcCallOptions::maximumReceiveMessageSize()も参照してください 。

[until 6.13] QHash<QByteArray, QByteArray> QGrpcChannelOptions::metadata() &&

[noexcept, until 6.13] const QHash<QByteArray, QByteArray> &QGrpcChannelOptions::metadata() const &

この関数は、バージョン 6.13 で非推奨となる予定です。

代わりに `metadata` (`QtGrpc::MultiValue`) を使用してください。

メタデータを返します。このフィールドが設定されていない場合は、空のメタデータを返します。

注: grpc- またはqtgrpc- という接頭辞を持つキーは 、gRPC およびQtGrpc によって予約されています。これらを使用したエントリは、リクエストの構築時に無視されます。具体的なチャネルによっては、さらに制限が課される場合があります。QGrpcHttp2Channel#Reserved metadata keys を参照してください。

metadata(QtGrpc::MultiValue_t) およびsetMetadata()も参照してください 。

[since 6.10] QMultiHash<QByteArray, QByteArray> QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t) &&

[noexcept, since 6.10] const QMultiHash<QByteArray, QByteArray> &QGrpcChannelOptions::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> QGrpcChannelOptions::requestCompression() const

このチャネルまたはコールにおいて、送信メッセージの圧縮に使用された圧縮アルゴリズムを返します。

このフィールドが設定されていない場合、空のstd::optional を返します。

この関数は Qt 6.12 で導入されました。

setRequestCompression() およびQGrpcCallOptions::requestCompression()も参照してください 。

[since 6.8] QGrpcSerializationFormat QGrpcChannelOptions::serializationFormat() const

チャネルで使用されているシリアライズ形式を返します。

このフィールドが未設定の場合、Default で構築されたシリアライズ形式を返します。

この関数は Qt 6.8 で導入されました。

setSerializationFormat()も参照してください 。

[since 6.12] QGrpcChannelOptions &QGrpcChannelOptions::setAcceptedCompressionAlgorithms(QtGrpc::CompressionAlgorithms algorithms)

受け入れ可能な圧縮形式algorithms を設定し、更新されたオブジェクトへの参照を返します。

Identity gRPC仕様ではクライアントが非圧縮メッセージを受け入れることが義務付けられているため、`xml-ph-0000@deepl.internal`は常に暗黙的に追加されます。

{QtGrpc::CompressionAlgorithm::Identity} が受け入れられる唯一のアルゴリズムである場合、圧縮された応答は拒否されます。フラグを追加することで、サーバーはそれらの圧縮アルゴリズムを使用して応答できるようになります。

この Qt ビルドでサポートされ、algorithms に含まれているアルゴリズムのみが、受け入れ可能な応答圧縮方法としてサーバーに通知されます。supportedCompressionAlgorithms()に含まれていないフラグは、何も通知せずに破棄されます。

この関数は Qt 6.12 で導入されました。

acceptedCompressionAlgorithms() およびsupportedCompressionAlgorithms()も参照してください 。

QGrpcChannelOptions &QGrpcChannelOptions::setDeadlineTimeout(std::chrono::milliseconds timeout)

timeout を設定し、更新されたオブジェクトへの参照を返します。

デッドラインは、クライアントがサーバーからの応答を待機する上限時間を設定します。実際のデッドラインは、timeout にRPCの開始時刻を加算することで計算されます。

デッドラインは RPC の全ライフサイクルに適用されます。これには、以前に開始された呼び出しの最終的な `QGrpcStatus ` の受信も含まれるため、(長期間継続する)ストリームでは望ましくない場合があります。

注: このフィールドの設定は 、QGrpcCallOptions::setDeadlineTimeout() によって上書きされたものを除き、そのチャネル上で動作するすべての RPC に適用されます。

deadlineTimeout()も参照してください 。

[since 6.11] QGrpcChannelOptions &QGrpcChannelOptions::setFilterServerMetadata(bool value)

value がtrue の場合、gRPCトランスポートによって定義されたプロトコル関連のメタデータ(grpc- の予約済みキーなど)は除外されます。value がfalse の場合、サーバーから受信したすべてのメタデータが含まれます。

注: このフィールドの設定は 、QGrpcCallOptions::filterServerMetadata

この関数は Qt 6.11 で導入されました。

filterServerMetadata() およびQGrpcCallOptions::setFilterServerMetadata()も参照してください 。

[since 6.12] QGrpcChannelOptions &QGrpcChannelOptions::setMaximumReceiveMessageSize(quint64 size)

受信メッセージの最大size をバイト単位で設定し、更新されたオブジェクトへの参照を返します。

この制限を超えるメッセージは、ペイロードがバッファに格納される前にStatusCode::ResourceExhausted で拒否されます。この値はそのまま使用されるため、size が0 に設定されている場合、空のメッセージのみが受け入れられます。

注:具体的な チャネル実装によっては、実効的な上限にハードな上限が課される場合があります。QGrpcHttp2Channel トランスポートでは、この値は gRPC-over-HTTP/2 フレームの最大ペイロード(2^32 - 1 )バイト数、あるいは 32 ビットプラットフォームにおけるqsizetype の最大値から 5 バイトの gRPC フレームヘッダーを差し引いた値に制限されます。 設定値がこれを超える場合は、その上限値に制限されます。

注: このフィールドの設定は 、QGrpcCallOptions::setMaximumReceiveMessageSize() によって上書きされるものを除き、そのチャネル上で動作するすべての RPC に適用されます。

この関数は Qt 6.12 で導入されました。

maximumReceiveMessageSize() およびQGrpcCallOptions::setMaximumReceiveMessageSize()も参照してください 。

[until 6.13] QGrpcChannelOptions &QGrpcChannelOptions::setMetadata(QHash<QByteArray, QByteArray> &&metadata)

[until 6.13] QGrpcChannelOptions &QGrpcChannelOptions::setMetadata(const QHash<QByteArray, QByteArray> &metadata)

この関数は、バージョン 6.13 で非推奨となる予定です。

代わりに、QMultiHash のオーバーロードを使用してください。

metadata を設定し、更新されたオブジェクトへの参照を返します。

注: grpc- またはqtgrpc- という接頭辞を持つキーは 、gRPC およびQtGrpc によって予約されています。これらを使用したエントリは、リクエストの構築時に無視されます。具体的なチャネルによっては、さらに制限が課される場合があります。QGrpcHttp2Channel#Reserved metadata keys を参照してください。

注:この メタデータは 、チャネルを介して行われるすべての RPC に含まれます。チャネルメタデータは、RPC の開始時に呼び出し固有のメタデータとマージされます。詳細はQGrpcCallOptions::setMetadata(QMultiHash) を参照してください。

metadata()も参照してください 。

[since 6.10] QGrpcChannelOptions &QGrpcChannelOptions::setMetadata(QMultiHash<QByteArray, QByteArray> &&metadata)

[since 6.10] QGrpcChannelOptions &QGrpcChannelOptions::setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata)

[since 6.10] QGrpcChannelOptions &QGrpcChannelOptions::setMetadata(std::initializer_list<std::pair<QByteArray, QByteArray>> list)

metadata を設定し、更新されたオブジェクトへの参照を返します。

注: grpc- またはqtgrpc- で始まるキーは 、gRPC およびQtGrpc によって予約されています。これらを使用したエントリは、リクエストの構築時に無視されます。具体的なチャネルによっては、さらに制限が課される場合があります。詳細はQGrpcHttp2Channel#Reserved metadata keys を参照してください。1つのキーに対して複数の値を設定できます。

注:この メタデータは 、チャネルを介して行われるすべての RPC に含まれます。チャネルメタデータは、RPC の開始時に呼び出し固有のメタデータとマージされます。詳細はQGrpcCallOptions::setMetadata(QMultiHash) を参照してください。

これらの関数は Qt 6.10 で導入されました。

metadata(QtGrpc::MultiValue_t)も参照してください 。

[since 6.12] QGrpcChannelOptions &QGrpcChannelOptions::setRequestCompression(QtGrpc::CompressionAlgorithm algorithm)

クライアントから送信されるメッセージの圧縮に使用される圧縮方式 `algorithm ` を設定し、更新されたオブジェクトへの参照を返します。

設定されると、アルゴリズムはgrpc-encoding リクエストヘッダーで通知されます。各メッセージは個別に圧縮されます。圧縮によってペイロードサイズが縮小されない場合、Compressed-Flag が0 に設定されているかどうかにかかわらず、メッセージは圧縮されずに送信されます。

注: 機密データと、攻撃者の影響を受ける可能性のあるデータの両方を含むメッセージを圧縮すると 、CRIMEやBREACHなどの圧縮サイドチャネル攻撃に対して接続がさらされる恐れがあります。可能であれば、そのようなメッセージの圧縮を避けるか、機密データと信頼できないデータを別々のリクエストに分割してください。

注: このフィールドの設定は 、QGrpcCallOptions::setRequestCompression() によって上書きされるものを除き、そのチャネル上で動作するすべての RPC に適用されます。

この関数は Qt 6.12 で導入されました。

requestCompression() およびQGrpcCallOptions::setRequestCompression()も参照してください 。

[since 6.8] QGrpcChannelOptions &QGrpcChannelOptions::setSerializationFormat(const QGrpcSerializationFormat &format)

チャネルのシリアライゼーションformat を設定し、更新されたオブジェクトへの参照を返します。

この関数は Qt 6.8 で導入されました。

serializationFormat()も参照してください 。

QGrpcChannelOptions &QGrpcChannelOptions::setSslConfiguration(const QSslConfiguration &sslConfiguration)

チャンネルのsslConfiguration を設定し、更新されたオブジェクトへの参照を返します。

sslConfiguration()も参照してください 。

std::optional<QSslConfiguration> QGrpcChannelOptions::sslConfiguration() const

そのチャネルのSSL設定を返します。

このフィールドが設定されていない場合、空のstd::optional を返します。

setSslConfiguration()も参照してください 。

[static noexcept, since 6.12] QtGrpc::CompressionAlgorithms QGrpcChannelOptions::supportedCompressionAlgorithms()

現在の Qt ビルドがネゴシエート可能な圧縮アルゴリズムを返します。gRPC 仕様では非圧縮メッセージが必須とされているため、Identity は常に存在します。Deflate およびGzip は常にサポートされています。

この関数は Qt 6.12 で導入されました。

acceptedCompressionAlgorithms() およびsetAcceptedCompressionAlgorithms()も参照してください 。

[noexcept, since 6.8] void QGrpcChannelOptions::swap(QGrpcChannelOptions &other)

other をこのオブジェクトとスワップします。この操作は非常に高速で、失敗することはありません。

この関数は Qt 6.8 で導入されました。

[since 6.8] QGrpcChannelOptions::operator QVariant() const

このオブジェクトから新しいQVariant を構築します。

この関数は Qt 6.8 で導入されました。

[noexcept] QGrpcChannelOptions &QGrpcChannelOptions::operator=(QGrpcChannelOptions &&other)

other をこのQGrpcChannelOptions に代入し、更新されたオブジェクトへの参照を返します。

注: 移動元のオブジェクト other は 、部分的に形成された状態になります。この状態では、有効な操作は破棄と新しい値への代入のみです。

QGrpcChannelOptions &QGrpcChannelOptions::operator=(const QGrpcChannelOptions &other)

この `QGrpcChannelOptions ` に `other ` を割り当て、更新されたオブジェクトへの参照を返します。

関連する非メンバー

[noexcept, since 6.11] bool operator!=(const QGrpcChannelOptions &lhs, const QGrpcChannelOptions &rhs)

lhs およびrhs 内の `acceptedCompressionAlgorithms`、`deadlineTimeout`、`filterServerMetadata`、`maximumReceiveMessageSize`、`metadata`(QtGrpc::MultiValue_t)、`requestCompression`、`serializationFormat `、および `sslConfiguration ` が等しくない場合、true を返します。

この関数は Qt 6.11 で導入されました。

[since 6.8] QDebug operator<<(QDebug debug, const QGrpcChannelOptions &chOpts)

指定されたストリーム `debug` に `chOpts ` を書き込みます。

この関数は Qt 6.8 で導入されました。

[noexcept, since 6.11] bool operator==(const QGrpcChannelOptions &lhs, const QGrpcChannelOptions &rhs)

lhs およびrhs 内の `acceptedCompressionAlgorithms`、`deadlineTimeout`、`filterServerMetadata`、`maximumReceiveMessageSize`、`metadata`(QtGrpc::MultiValue_t)、`requestCompression`、`serializationFormat `、および `sslConfiguration ` が等しい場合、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.