本页内容

<QGrpcInterceptor> - Interceptor types

<QGrpcInterceptor> 头文件提供了基本的拦截器类型。更多内容...

Header: #include <QGrpcInterceptor>
Since: Qt 6.11

类型

(since 6.11) flags InterceptorCapabilities
(since 6.11) enum class InterceptorCapability { Start, InitialMetadata, MessageReceived, WriteMessage, WritesDone, …, Cancel }

详细说明

Qt GRPC 提供了各种类型,这些类型通常汇总在<QtGrpcInterceptor> 头文件中。

有关拦截机制的介绍以及拦截器接口如何参与 RPC 生命周期的说明,请参阅《Qt GRPC 拦截器概述》。

Qt GRPC 提供了以下拦截器接口,作为 RPC 生命周期中的挂钩点:

接口挂钩点方向可修改
QGrpcStartInterceptorRPC 发起之前出站初始消息对象、调用选项
QGrpcWriteMessageInterceptor在写入出站消息之前出站消息对象
QGrpcWritesDoneInterceptor当客户端指示写入完成时出站—
QGrpcCancelInterceptor当 RPC 被取消时出站—
QGrpcInitialMetadataInterceptor收到初始元数据时入站元数据
QGrpcMessageReceivedInterceptor收到消息负载时入站序列化后的消息数据
QGrpcTrailingMetadataInterceptor当接收到尾部元数据时入站元数据
QGrpcFinishedInterceptor当 RPC 完成时入站最终状态

拦截器机制

以下类和页面构成了Qt GRPC 拦截器机制:

类型文档

[since 6.11] enum class InterceptorCapability
[since 6.11] flags InterceptorCapabilities

指定拦截器支持的拦截挂钩点。

Qt GRPC 使用 InterceptorCapability 值来描述拦截器提供了哪些拦截钩点。

一个拦截器类可以实现多个拦截器接口(例如,QGrpcStartInterceptor 和QGrpcFinishedInterceptor ),因此支持多种功能。

常量值描述
InterceptorCapability::Start0x01该拦截器实现了QGrpcStartInterceptor 。
InterceptorCapability::InitialMetadata0x02该拦截器实现了QGrpcInitialMetadataInterceptor 。该拦截器实现了 。
InterceptorCapability::MessageReceived0x04该拦截器实现了QGrpcMessageReceivedInterceptor 。
InterceptorCapability::WriteMessage0x08该拦截器实现了QGrpcWriteMessageInterceptor 。
InterceptorCapability::WritesDone0x10该拦截器实现了QGrpcWritesDoneInterceptor 。
InterceptorCapability::TrailingMetadata0x20该拦截器实现了QGrpcTrailingMetadataInterceptor 。
InterceptorCapability::Finished0x40该拦截器实现了QGrpcFinishedInterceptor 。
InterceptorCapability::Cancel0x80该拦截器实现了QGrpcCancelInterceptor 。

该枚举类型在 Qt 6.11 中引入。

InterceptorCapabilities 类型是QFlags<InterceptorCapability> 的 typedef。它存储 InterceptorCapability 值的“或”组合。

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