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(const QGrpcChannelOptions &other) | |
QGrpcChannelOptions(QGrpcChannelOptions &&other) | |
~QGrpcChannelOptions() | |
(since 6.10) QGrpcChannelOptions & | addMetadata(QByteArrayView key, QByteArrayView value) |
std::optional<std::chrono::milliseconds> | deadlineTimeout() const |
(since 6.11) std::optional<bool> | filterServerMetadata() 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.8) QGrpcSerializationFormat | serializationFormat() const |
QGrpcChannelOptions & | setDeadlineTimeout(std::chrono::milliseconds timeout) |
(since 6.11) QGrpcChannelOptions & | setFilterServerMetadata(bool value) |
(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.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) QVariant | operator QVariant() const |
QGrpcChannelOptions & | operator=(QGrpcChannelOptions &&other) |
QGrpcChannelOptions & | operator=(const QGrpcChannelOptions &other) |
相关非成员
(since 6.8) QDebug | operator<<(QDebug debug, const QGrpcChannelOptions &chOpts) |
详细说明
QGrpcChannelOptions 可让您自定义一个 gRPC™通道。某些选项适用于在关联通道上操作的所有远程过程调用(RPC),该通道用于与服务通信。
使用QGrpcCallOptions 可以覆盖特定 RPC 的选项。
QGrpcChannelOptionschannelOpts;// Apply common metadata to every RPCchannelOpts.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());
注: 这些选项的具体细节由通道的实现决定。
成员函数文档
[until 6.13]
QHash<QByteArray, QByteArray> QGrpcChannelOptions::metadata() &&
[noexcept, until 6.13]
const QHash<QByteArray, QByteArray> &QGrpcChannelOptions::metadata() const &
该函数计划在 6.13 版中被弃用。
请使用metadata(QtGrpc::MultiValue) 代替。
返回元数据。如果此字段未设置,则返回空元数据。
注意: QGrpcHttp2Channel 会将元数据作为 HTTP/2 标头传输。键是不区分大小写的 ASCII 字符串。必须避免使用内部前缀::
(伪头信息)、grpc-
或qtgrpc-
。值可以是 ASCII 字符串或二进制数据。更多信息,请参阅RFC 7540 第 8.1.2 节。
另请参阅 metadata(QtGrpc::MultiValue_t) 和setMetadata() 。
[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 并返回更新对象的引用。
注: QGrpcHttp2Channel 以 HTTP/2 标头的形式传输元数据。键是不区分大小写的 ASCII 字符串。必须避免使用内部前缀::
(伪头信息)、grpc-
或qtgrpc-
。值可以是 ASCII 字符串或二进制数据。更多信息,请参见RFC 7540 第 8.1.2 节。
注: 该元数据包含在通过通道进行的每一次 RPC 中。当 RPC 启动时,通道元数据会与任何特定于调用的元数据合并--参见QGrpcCallOptions::setMetadata(QMultiHash)
另请参阅 metadata().
[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 &
返回元数据。如果未设置该字段,则返回空元数据。
注: QGrpcHttp2Channel 将元数据作为 HTTP/2 标头传输。键是不区分大小写的 ASCII 字符串。必须避免使用内部前缀::
(伪头信息)、grpc-
或qtgrpc-
。值可以是 ASCII 字符串或二进制数据。更多信息,请参见RFC 7540 第 8.1.2 节。每个键支持多个值。
const auto &md = opts.metadata(QtGrpc::MultiValue);
此函数在 Qt 6.10 中引入。
另请参见 setMetadata 。
[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 并返回更新对象的引用。
注: QGrpcHttp2Channel 以 HTTP/2 标头的形式传输元数据。键是不区分大小写的 ASCII 字符串。必须避免使用内部前缀::
(伪头信息)、grpc-
或qtgrpc-
。值可以是 ASCII 字符串或二进制数据。更多信息,请参见RFC 7540 第 8.1.2 节。每个密钥支持多个值。
注: 该元数据包含在通过通道进行的每个 RPC 中。当 RPC 开始时,通道元数据会与任何特定于调用的元数据合并- 参见QGrpcCallOptions::setMetadata(QMultiHash)
此函数在 Qt 6.10 中引入。
另请参阅 metadata(QtGrpc::MultiValue_t)。
QGrpcChannelOptions::QGrpcChannelOptions()
Default-构造一个空的 QGrpcChannelOptions。
QGrpcChannelOptions::QGrpcChannelOptions(const QGrpcChannelOptions &other)
从other 复制-构建 QGrpcChannelOptions。
[noexcept]
QGrpcChannelOptions::QGrpcChannelOptions(QGrpcChannelOptions &&other)
移动-从other 构建一个新的 QGrpcChannelOptions。
注: moved-from 对象other 处于部分形成状态,在这种状态下,唯一有效的操作是销毁和赋新值。
[noexcept]
QGrpcChannelOptions::~QGrpcChannelOptions()
[since 6.10]
QGrpcChannelOptions &QGrpcChannelOptions::addMetadata(QByteArrayView key, QByteArrayView value)
如果metadata 中尚未包含key 和value 这两个精确键对,则将其添加到 中。同一密钥可能以不同的值多次出现。
注: QGrpcHttp2Channel 以 HTTP/2 标头的形式传输元数据。密钥是不区分大小写的 ASCII 字符串。必须避免使用内部前缀::
(伪头信息)、grpc-
或qtgrpc-
。值可以是 ASCII 字符串或二进制数据。更多信息,请参见RFC 7540 第 8.1.2 节。
注: 该元数据包含在通过通道进行的每一次 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.8]
QGrpcSerializationFormat QGrpcChannelOptions::serializationFormat() const
返回通道使用的序列化格式。
如果未设置该字段,则返回Default 构建的序列化格式。
此函数在 Qt 6.8 中引入。
另请参阅 setSerializationFormat()。
QGrpcChannelOptions &QGrpcChannelOptions::setDeadlineTimeout(std::chrono::milliseconds timeout)
设置timeout 并返回更新对象的引用。
截止时间设定了客户端愿意等待服务器响应的时间限制。实际的截止时间是通过将timeout 与 RPC 的开始时间相加计算得出的。
截止时间适用于 RPC 的整个生命周期,其中包括接收先前启动的调用的最终QGrpcStatus ,因此对于(长生命周期的)数据流来说是不需要的。
注意: 设置该字段适用于在通道上运行的所有 RPC,但被QGrpcCallOptions::setDeadlineTimeout() 覆盖的 RPC 除外。
另请参阅 deadlineTimeout()。
[since 6.11]
QGrpcChannelOptions &QGrpcChannelOptions::setFilterServerMetadata(bool value)
如果value 是true
,则将排除 gRPC 传输所定义的协议相关元数据(如保留的grpc-
键)。如果value 是false
,则会包含从服务器接收到的所有元数据。
*/ voidQGrpcCommonOptions::setFilterServerMetadata(bool value) { m_filterServerMetadata = value; }
qt_end_namespace
注意: 设置此字段适用于所有在通道上操作的 RPC,但被以下函数覆盖的除外QGrpcCallOptions::filterServerMetadata
此函数在 Qt 6.11 中引入。
另请参阅 filterServerMetadata() 和QGrpcCallOptions::setFilterServerMetadata()。
[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()。
[noexcept, since 6.8]
void QGrpcChannelOptions::swap(QGrpcChannelOptions &other)
与该对象交换other 。该操作速度非常快,而且不会失败。
此函数在 Qt 6.8 中引入。
[since 6.8]
QVariant QGrpcChannelOptions::operator QVariant() const
从该对象构建一个新的QVariant 。
此函数在 Qt 6.8 中引入。
[noexcept]
QGrpcChannelOptions &QGrpcChannelOptions::operator=(QGrpcChannelOptions &&other)
Move 将other 赋值给QGrpcChannelOptions ,并返回对更新对象的引用。
注意: 从移动对象other 将处于部分形成状态,在这种状态下,唯一有效的操作是销毁和分配新值。
QGrpcChannelOptions &QGrpcChannelOptions::operator=(const QGrpcChannelOptions &other)
将other 指定为QGrpcChannelOptions ,并返回更新对象的引用。
相关非成员
[since 6.8]
QDebug operator<<(QDebug debug, const QGrpcChannelOptions &chOpts)
将chOpts 写入指定的流debug 。
该函数在 Qt 6.8 中引入。
© 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.