このページでは

QGrpcOperation Class

QGrpcOperation クラスは、クライアント側からの gRPC™ クライアント側からの通信を処理するための共通操作を提供します。詳細...

ヘッダー: #include <QGrpcOperation>
CMake: find_package(Qt6 REQUIRED COMPONENTS Grpc)
target_link_libraries(mytarget PRIVATE Qt6::Grpc)
以下より: Qt 6.5
継承元: QObject
継承元:

QGrpcBidiStream、QGrpcCallReply 、QGrpcClientStream 、およびQGrpcServerStream

パブリック関数

virtual ~QGrpcOperation() override
bool isFinished() const
(until 6.13) const QHash<QByteArray, QByteArray> &metadata() const &
QLatin1StringView method() const
std::optional<T> read() const
(since 6.8) bool read(QProtobufMessage *message) const
QMetaType responseMetaType() const
(since 6.10) const QMultiHash<QByteArray, QByteArray> &serverInitialMetadata() const &
(since 6.10) const QMultiHash<QByteArray, QByteArray> &serverTrailingMetadata() const &

パブリックスロット

void cancel()

シグナル

void finished(const QGrpcStatus &status)
(since 6.11) void serverInitialMetadataReceived(const QMultiHash<QByteArray, QByteArray> &metadata)

詳細な説明

QGrpcOperationは、次の4つの gRPC™ メソッドタイプ、すなわちQGrpcCallReply (単項呼び出し)、QGrpcServerStream (サーバストリーミング)、QGrpcClientStream (クライアントストリーミング)、およびQGrpcBidiStream (双方向ストリーミング)の基底クラスとして機能します。このクラスは、これらのリモートプロシージャコール(RPC)とやり取りするための共通インターフェースを提供します。

各 QGrpcOperation は、生成されたクライアント・インターフェースを通じて要求される特定の RPC に対応しています。

概要については、『Qt GRPC クライアントガイド』を参照してください。

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

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

QGrpcOperation を削除します。

[slot] void QGrpcOperation::cancel()

RPCを直ちにキャンセルしようとします。キャンセルが成功するとは限りません。ステータスコード「Cancelled 」を伴って、finished シグナルを発行します。

QGrpcOperationContext::cancelRequestedも参照してください 。

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

このシグナルは、以前に開始されたRPCが終了したときに発せられます。status は、RPCの結果に関する追加情報を提供します。

このシグナルを受信した後は、操作オブジェクトに対してそれ以上の書き込みや読み取り操作を行ってはなりません。この時点で、RPCオブジェクトを再利用したり破棄したりしても安全です。

注:このシグナルは 一度だけ発火します。ほとんどの場合、シグナル受信後にラムダキャプチャが破棄されないといった問題を回避するため、受信直後に接続を解除することをお勧めします。これを実現する簡単な方法は、SingleShotConnection 接続タイプを使用することです。詳細については、「シングルショットRPC」を参照してください。

[noexcept] bool QGrpcOperation::isFinished() const

この操作が完了した場合(つまり、対応するRPCに対してこれ以上の操作が行われなくなった場合)、trueを返します。それ以外の場合はfalseを返します。

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

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

代わりに、serverInitialMetadata() およびserverTrailingMetadata() を使用してください。

レスポンスメッセージが送信される前に、サーバーから受信した初期メタデータを返します。

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

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

serverInitialMetadata() およびserverTrailingMetadata()も参照してください 。

[noexcept] QLatin1StringView QGrpcOperation::method() const

この RPC 操作に関連付けられたメソッド名を返します。

template <typename T> requires QtProtobuf::if_protobuf_message<T> std::optional<T> QGrpcOperation::read() const

この操作オブジェクト内に格納されている生のバイト配列からメッセージを読み取ります。

デシリアライズされたメッセージ(オプション)を返します。失敗した場合は、std::nullopt が返されます。

注:この関数は 、T がQProtobufMessage のサブクラスである場合にのみ、オーバーロード解決の対象となります。

関連項目: ` read(QProtobufMessage *)`。

[since 6.8] bool QGrpcOperation::read(QProtobufMessage *message) const

この操作オブジェクト内に格納されている生のバイト配列からメッセージを読み取ります。

この関数は、デシリアライズされた値をmessage ポインタに書き込みます。

デシリアライズに成功した場合、この関数はtrue を返します。そうでない場合は、false を返します。

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

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

QMetaType QGrpcOperation::responseMetaType() const

RPC応答メッセージのメタタイプを返します。

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

レスポンスメッセージが送信される前に、サーバーから受信した初期メタデータを返します。

初期メタデータは、接続が確立された直後にサーバーから送信されます。これには、呼び出しのコンテキストを提供するキーと値のペアが含まれる場合があります。

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

メタデータには、同じキーの下に複数のエントリを含めることができます。

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

serverInitialMetadataReceived() およびserverTrailingMetadata()も参照してください 。

[signal, since 6.11] void QGrpcOperation::serverInitialMetadataReceived(const QMultiHash<QByteArray, QByteArray> &metadata)

このシグナルは、サーバーが初期メタデータを含む応答を返した際に発生します。サーバーからの初期メタデータは、RPCの初期応答の前にクライアントに送信されます。

受信したメタデータは `metadata ` に格納されており、`serverInitialMetadata()` を通じて取得することも可能です。

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

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

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

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

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

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

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

メタデータには、同一のキーの下に複数のエントリを含めることができます。

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

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

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