QGrpcOperationContext Class

QGrpcOperationContextクラスは、個々のオペレーションとチャネル間の通信のためのコンテキストを提供します。 gRPCコンテキストを提供します。詳細...

ヘッダー #include <QGrpcOperationContext>
CMake: find_package(Qt6 REQUIRED COMPONENTS Grpc)
target_link_libraries(mytarget PRIVATE Qt6::Grpc)
以来:Qt 6.7
継承: QObject

パブリック関数

virtual ~QGrpcOperationContext() override
QByteArrayView argument() const
const QGrpcCallOptions &callOptions() const &
QLatin1StringView method() const
QMetaType responseMetaType() const
std::shared_ptr<const QAbstractProtobufSerializer> serializer() const
(since 6.10) const QMultiHash<QByteArray, QByteArray> &serverInitialMetadata() const &
(until 6.13) const QHash<QByteArray, QByteArray> &serverMetadata() const &
(since 6.10) const QMultiHash<QByteArray, QByteArray> &serverTrailingMetadata() const &
QLatin1StringView service() const
void setResponseMetaType(QMetaType metaType)
(since 6.10) void setServerInitialMetadata(QMultiHash<QByteArray, QByteArray> &&metadata)
(until 6.13) void setServerMetadata(QHash<QByteArray, QByteArray> &&metadata)
(until 6.13) void setServerMetadata(const QHash<QByteArray, QByteArray> &metadata)
(since 6.10) void setServerTrailingMetadata(QMultiHash<QByteArray, QByteArray> &&metadata)

シグナル

void cancelRequested()
void finished(const QGrpcStatus &status)
void messageReceived(const QByteArray &data)
void writeMessageRequested(const QByteArray &data)
void writesDoneRequested()

詳細説明

QGrpcOperationContextは、リモート・プロシージャ・コール(RPC)が要求されたときに内部的に構築され、クライアントの操作要求とチャネルの操作結果の相互作用を仲介します。

クライアント・インターフェースで要求された RPC は、QGrpcCallReplyQGrpcServerStreamQGrpcClientStreamQGrpcBidiStream など、QGrpcOperation の特殊化を返します。これらのクラスは、基盤となる QGrpcOperationContext と暗黙的に統合されています。

注: カスタム・チャネルを実装しない限り、このクラスを直接使用しないでください。

このクラスに含まれるシグナルは、クライアント向けのQGrpcOperationQAbstractGrpcChannel 実装間の通信を構築するために使用されます。これらの操作は本質的に非同期であり、複数のRPCが同じチャネル上で同時に操作できます。チャネルは通常、すべての操作を同じように扱い、その RPC タイプがサポートする機能のサブセットを正しくサポートし、制限するのはチャネルの責任です。

チャネルの実装のみが発するべきシグナルは以下のとおりです:

QGrpcOperation およびその特殊化によって発せられるシグナルは以下のとおりです:

デフォルトのシグナル処理は提供されていないため、QAbstractGrpcChannel のカスタム実装はクライアントのシグナルを処理し、それに応じて独自のシグナルを発する必要があります。

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

[until 6.13] void QGrpcOperationContext::setServerMetadata(QHash<QByteArray, QByteArray> &&metadata)

[until 6.13] void QGrpcOperationContext::setServerMetadata(const QHash<QByteArray, QByteArray> &metadata)

この関数はバージョン6.13で廃止予定である。

代わりにsetServerInitialMetadata() を使用してください。

RPC の開始時にサーバから受信したメタデータを設定します。

setServerInitialMetadata()も参照してください

[override virtual noexcept] QGrpcOperationContext::~QGrpcOperationContext()

操作コンテキストを破棄する。

[noexcept] QByteArrayView QGrpcOperationContext::argument() const

このoperation-contextが利用する直列化された引数を返します。

[noexcept] const QGrpcCallOptions &QGrpcOperationContext::callOptions() const &

このoperation-contextが使用する呼オプションを返す。

チャネル全体のオプションについては、QGrpcChannelOptions を参照。

[signal] void QGrpcOperationContext::cancelRequested()

このシグナルは、通信のキャンセルを要求するときにQGrpcOperation

チャネルはキャンセル・ロジックをこのシグナルに接続し、RPCのキャンセルを試み、Cancelled ステータス・コードで終了することが期待される。キャンセルの成功は保証されない。チャネルから受信したデータをさらに処理することは要求されないので、避けるべきである。

QGrpcOperation::cancelも参照のこと

[signal] void QGrpcOperationContext::finished(const QGrpcStatus &status)

このシグナルは RPC が終了したときにチャネルから発行される。

これは通常、サーバーが要求された RPC に対してstatus を送信し、コネクションを閉じたことを意味する。QAbstractGrpcChannel の実装は、この状況を検出してシグナルを発するべきである。

このシグナルを受信した後は、この操作コンテキストを介した通信は行われない。クライアント側は、対応する RPC オブジェクトを安全に削除することができる。

注意: このシグナルは、QGrpcOperation に暗黙的に接続されている。

QGrpcOperation::finishedも参照

[signal] void QGrpcOperationContext::messageReceived(const QByteArray &data)

このシグナルは、サーバーから新しいチャンク(data )を受信 したときに、チャネルが発するべきである。

クライアントストリームと単項呼の場合、これは、1つの最終応答が到着し、 通信が終了しようとしていることを意味する。

サーバストリームや双方向ストリームの場合、このシグナルは、新しいメッセージを受信するたびに、チャネルから継続的に発信されなければならない。

注意: このシグナルは、QGrpcOperation に暗黙的に接続されています。

QGrpcServerStream::messageReceived およびQGrpcBidiStream::messageReceivedも参照

[noexcept] QLatin1StringView QGrpcOperationContext::method() const

このoperation-contextに関連付けられているサービスのメソッド名を返します。

QMetaType QGrpcOperationContext::responseMetaType() const

RPC 結果メッセージのメタ・タイプを返します。

setResponseMetaType()も参照してください

std::shared_ptr<const QAbstractProtobufSerializer> QGrpcOperationContext::serializer() const

この操作コンテキストのシリアライザーを返します。

[noexcept, since 6.10] const QMultiHash<QByteArray, QByteArray> &QGrpcOperationContext::serverInitialMetadata() const &

応答メッセージの前に、サーバーから受け取った初期メタデータを返す。

初期メタデータは、呼の確立直後にサーバーから送られる。これには、呼のコンテキストを提供するキーと値のペアが含まれる。

注: QGrpcHttp2Channel は HTTP/2 ヘッダーとしてメタデータを送信します。キーは大文字小文字を区別しないASCII文字列である。: (擬似ヘッダー)、grpc- 、またはqtgrpc- という内部接頭辞の使用は避けなければならない。値はASCII文字列またはバイナリデータのいずれかである。詳細はRFC 7540のセクション8.1.2を参照のこと。

注: このメソッドは、QGrpcOperation によって暗黙的に使用されます。

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

setServerInitialMetadata(),QGrpcOperation::serverInitialMetadata(),serverTrailingMetadata()も参照してください

[noexcept, until 6.13] const QHash<QByteArray, QByteArray> &QGrpcOperationContext::serverMetadata() const &

この関数はバージョン6.13で廃止予定である。

代わりにserverInitialMetadata() とserverTrailingMetadata() を使用してください。

応答メッセージの前に、サーバーから受け取った初期メタデータを返す。

初期メタデータは、呼の確立直後にサーバーから送られる。これには、呼のコンテキストを提供するkey-valueペアが含まれる。

注: QGrpcHttp2Channel は HTTP/2 ヘッダーとしてメタデータを送信します。キーは大文字小文字を区別しないASCII文字列である。: (擬似ヘッダー)、grpc- 、またはqtgrpc- という内部接頭辞の使用は避けなければならない。値はASCII文字列またはバイナリデータのいずれかである。詳細はRFC 7540のセクション8.1.2を参照のこと。

注: このメソッドは、QGrpcOperation で暗黙的に使用される。

setServerMetadata()、serverInitialMetadata()、QGrpcOperation::serverInitialMetadata()も参照の こと。

[noexcept, since 6.10] const QMultiHash<QByteArray, QByteArray> &QGrpcOperationContext::serverTrailingMetadata() const &

すべてのレスポンス・メッセージの後に、サーバーから受信した末尾のメタデータを返します。

後続メタデータは、すべての応答メッセージが送信された後、RPCが完了する直前にのみサーバーから送信されます。メタデータには、完了した呼び出しに関する追加のコンテキストを提供するキーと値のペアが含まれることがある。

注: QGrpcHttp2Channel は HTTP/2 ヘッダーとしてメタデータを送信します。キーは大文字と小文字を区別しない ASCII 文字列です。: (擬似ヘッダー)、grpc- 、またはqtgrpc- という内部接頭辞の使用は避けなければならない。値はASCII文字列またはバイナリデータである。詳細はRFC 7540のセクション8.1.2を参照のこと。

注: このメソッドは、QGrpcOperation によって暗黙的に使用されます。

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

QGrpcOperation::serverTrailingMetadata() およびsetServerTrailingMetadata()も参照してください

[noexcept] QLatin1StringView QGrpcOperationContext::service() const

この操作コンテキストに関連付けられたサービス名を返します。

void QGrpcOperationContext::setResponseMetaType(QMetaType metaType)

RPC 結果メッセージのmetaType を格納する。

responseMetaType()も参照してください

[since 6.10] void QGrpcOperationContext::setServerInitialMetadata(QMultiHash<QByteArray, QByteArray> &&metadata)

RPC の開始時にサーバーから受け取ったmetadata を設定します。

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

serverInitialMetadata()も参照してください

[since 6.10] void QGrpcOperationContext::setServerTrailingMetadata(QMultiHash<QByteArray, QByteArray> &&metadata)

すべての応答メッセージの後に、サーバから受け取ったmetadata の末尾を設定します。

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

serverTrailingMetadata()も参照してください

[signal] void QGrpcOperationContext::writeMessageRequested(const QByteArray &data)

このシグナルは、QGrpcClientStream またはQGrpcBidiStream が、data をチャネルが送出できるようにシリアライズしたときに発せられる。

チャネルは、書き込みロジックをこのシグナルに接続し、シリアル化されたデータをチャネル関連のヘッダでラップしてから、それをワイヤに書き込むことが期待されます。

QGrpcClientStream::writeMessage およびQGrpcBidiStream::writeMessageも参照して ください。

[signal] void QGrpcOperationContext::writesDoneRequested()

このシグナルは、QGrpcClientStream またはQGrpcBidiStream が、メッセージの書き込みが終了したことを示すために発する。チャネルはこれに応答してストリームを半閉鎖する必要がある。

注意: このシグナルを受信した後は、ストリーミング RPC に対してこれ以上の書き込み操作は許可されません。サーバはまだメッセージを送信できるので、messageReceived() で転送する必要がある。

QGrpcClientStream::writesDone およびQGrpcBidiStream::writesDoneも参照のこと

© 2025 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.