QGrpcCallOptions Class
QGrpcCallOptions 类为微调单个 RPC 提供了各种选项。更多
Header: | #include <QGrpcCallOptions> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Grpc) target_link_libraries(mytarget PRIVATE Qt6::Grpc) |
自 | Qt 6.6 |
在 QML 中 | GrpcCallOptions |
公共函数
QGrpcCallOptions() | |
QGrpcCallOptions(const QGrpcCallOptions &other) | |
QGrpcCallOptions(QGrpcCallOptions &&other) | |
~QGrpcCallOptions() | |
(since 6.10) QGrpcCallOptions & | 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 & |
QGrpcCallOptions & | setDeadlineTimeout(std::chrono::milliseconds timeout) |
(since 6.11) QGrpcCallOptions & | setFilterServerMetadata(bool value) |
(until 6.13) QGrpcCallOptions & | setMetadata(QHash<QByteArray, QByteArray> &&metadata) |
(since 6.10) QGrpcCallOptions & | setMetadata(QMultiHash<QByteArray, QByteArray> &&metadata) |
(until 6.13) QGrpcCallOptions & | setMetadata(const QHash<QByteArray, QByteArray> &metadata) |
(since 6.10) QGrpcCallOptions & | setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata) |
(since 6.10) QGrpcCallOptions & | setMetadata(std::initializer_list<std::pair<QByteArray, QByteArray>> metadata) |
(since 6.8) void | swap(QGrpcCallOptions &other) |
(since 6.8) QVariant | operator QVariant() const |
QGrpcCallOptions & | operator=(QGrpcCallOptions &&other) |
QGrpcCallOptions & | operator=(const QGrpcCallOptions &other) |
相关非成员
(since 6.8) QDebug | operator<<(QDebug debug, const QGrpcCallOptions &callOpts) |
详细说明
QGrpcCallOptions 可让您自定义单个远程过程调用(RPC)。生成的客户端接口提供了传递 QGrpcCallOptions 的接入点。这些选项取代通过QGrpcChannelOptions 设置的选项。
要配置 RPC 共享的默认选项,请使用QGrpcChannelOptions 。
QGrpcCallOptionscallOpts;//Set the metadata for an individial RPCcallOpts.setMetadata({ {"header" , "value1"},{"header" , " value2"},});const auto &md =callOpts.metadata(QtGrpc::MultiValue);qDebug() << "Call Metadata: " << md; // 为单个 RPCcallOpts.setDeadlineTimeout(2s) 设置 2 秒的截止时间;qDebug() << "Call timeout: " << callOpts.deadlineTimeout();
成员函数文档
[until 6.13]
QHash<QByteArray, QByteArray> QGrpcCallOptions::metadata() &&
[noexcept, until 6.13]
const QHash<QByteArray, QByteArray> &QGrpcCallOptions::metadata() const &
该函数计划在 6.13 版中废弃。
请使用QMultiHash 重载。
返回元数据。如果该字段未设置,则返回空元数据。
注: QGrpcHttp2Channel 将元数据作为 HTTP/2 标头传输。键是不区分大小写的 ASCII 字符串。必须避免使用内部前缀::
(伪头信息)、grpc-
或qtgrpc-
。值可以是 ASCII 字符串或二进制数据。更多信息,请参见RFC 7540 第 8.1.2 节。
另请参阅 setMetadata() 。
[until 6.13]
QGrpcCallOptions &QGrpcCallOptions::setMetadata(QHash<QByteArray, QByteArray> &&metadata)
[until 6.13]
QGrpcCallOptions &QGrpcCallOptions::setMetadata(const QHash<QByteArray, QByteArray> &metadata)
该函数计划在 6.13 版中废弃。
请使用QMultiHash 重载。
设置metadata 并返回更新对象的引用。
注: QGrpcHttp2Channel 以 HTTP/2 标头的形式传输元数据。键是不区分大小写的 ASCII 字符串。必须避免使用内部前缀::
(伪头信息)、grpc-
或qtgrpc-
。值可以是 ASCII 字符串或二进制数据。更多信息,请参见RFC 7540 第 8.1.2 节。
注: RPC 启动时,调用元数据会与任何通道级元数据合并--参见QGrpcChannelOptions::setMetadata(QMultiHash)。
另请参阅 metadata().
[since 6.10]
QMultiHash<QByteArray, QByteArray> QGrpcCallOptions::metadata(QtGrpc::MultiValue_t) &&
[noexcept, since 6.10]
const QMultiHash<QByteArray, QByteArray> &QGrpcCallOptions::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]
QGrpcCallOptions &QGrpcCallOptions::setMetadata(QMultiHash<QByteArray, QByteArray> &&metadata)
[since 6.10]
QGrpcCallOptions &QGrpcCallOptions::setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata)
[since 6.10]
QGrpcCallOptions &QGrpcCallOptions::setMetadata(std::initializer_list<std::pair<QByteArray, QByteArray>> metadata)
设置metadata 并返回更新对象的引用。
注: QGrpcHttp2Channel 以 HTTP/2 标头的形式传输元数据。键是不区分大小写的 ASCII 字符串。必须避免使用内部前缀::
(伪头信息)、grpc-
或qtgrpc-
。值可以是 ASCII 字符串或二进制数据。更多信息,请参见RFC 7540 第 8.1.2 节。每个密钥支持多个值。
注意: 当 RPC 启动时,调用元数据会与任何通道级元数据合并--请参阅QGrpcChannelOptions::setMetadata(QMultiHash)。
此函数在 Qt 6.10 中引入。
另请参阅 metadata(QtGrpc::MultiValue_t)。
QGrpcCallOptions::QGrpcCallOptions()
Default-构造一个空的 QGrpcallOptions。
QGrpcCallOptions::QGrpcCallOptions(const QGrpcCallOptions &other)
从other 复制构造一个 QGrpcCallOptions。
[noexcept]
QGrpcCallOptions::QGrpcCallOptions(QGrpcCallOptions &&other)
移动-从other 构建一个新的 QGrpcCallOptions。
注意: moved-from 对象other 处于部分形成状态,其中唯一有效的操作是销毁和赋新值。
[noexcept]
QGrpcCallOptions::~QGrpcCallOptions()
[since 6.10]
QGrpcCallOptions &QGrpcCallOptions::addMetadata(QByteArrayView key, QByteArrayView value)
如果metadata 中尚未包含key 和value 这两个精确键对,则将其添加到 中。同一密钥可能以不同的值多次出现。
注: QGrpcHttp2Channel 以 HTTP/2 标头的形式传输元数据。密钥是不区分大小写的 ASCII 字符串。必须避免使用内部前缀::
(伪头信息)、grpc-
或qtgrpc-
。值可以是 ASCII 字符串或二进制数据。更多信息,请参见RFC 7540 第 8.1.2 节。
注: 当 RPC 启动时,调用元数据会与任何通道级元数据合并--请参阅QGrpcChannelOptions::addMetadata()
此函数在 Qt 6.10 中引入。
另请参阅 metadata() 和setMetadata()。
[noexcept]
std::optional<std::chrono::milliseconds> QGrpcCallOptions::deadlineTimeout() const
返回用于计算 RPC 截止时间的超时持续时间。
如果未设置该字段,则返回空std::optional
。
另请参见 setDeadlineTimeout()。
[noexcept, since 6.11]
std::optional<bool> QGrpcCallOptions::filterServerMetadata() const
如果结果中不包括与协议相关的服务器元数据,则返回true
。如果包括从服务器接收的所有元数据,则返回false
。
如果未设置此字段,则返回空std::optional
。
此函数在 Qt 6.11 中引入。
另请参阅 setFilterServerMetadata() 和QGrpcChannelOptions::filterServerMetadata()。
QGrpcCallOptions &QGrpcCallOptions::setDeadlineTimeout(std::chrono::milliseconds timeout)
设置timeout 并返回更新对象的引用。
截止时间设定了客户端愿意等待服务器响应的时间限制。实际的截止时间是通过将timeout 与 RPC 的开始时间相加计算得出的。
截止时间适用于 RPC 的整个生命周期,其中包括接收先前启动的调用的最终QGrpcStatus ,因此对于(长生命周期的)数据流来说,截止时间是不需要的。
注: 设置该字段将覆盖相应的通道选项字段 - 参见QGrpcChannelOptions::setDeadlineTimeout()
另请参阅 deadlineTimeout()。
[since 6.11]
QGrpcCallOptions &QGrpcCallOptions::setFilterServerMetadata(bool value)
如果value 是true
,则将排除 gRPC 传输所定义的协议相关元数据(如保留的grpc-
键)。如果value 是false
,则会包含从服务器接收到的所有元数据。
*/ voidQGrpcCommonOptions::setFilterServerMetadata(bool value) { m_filterServerMetadata = value; }
qt_end_namespace
注意: 设置该字段将覆盖相应的通道选项字段 - 参见QGrpcChannelOptions::setFilterServerMetadata()
此函数在 Qt 6.11 中引入。
另请参阅 filterServerMetadata() 和QGrpcChannelOptions::setFilterServerMetadata()。
[noexcept, since 6.8]
void QGrpcCallOptions::swap(QGrpcCallOptions &other)
与该对象交换other 。该操作速度非常快,而且不会失败。
此函数在 Qt 6.8 中引入。
[since 6.8]
QVariant QGrpcCallOptions::operator QVariant() const
从该对象构建一个新的QVariant 。
此函数在 Qt 6.8 中引入。
[noexcept]
QGrpcCallOptions &QGrpcCallOptions::operator=(QGrpcCallOptions &&other)
Move 将other 赋值给QGrpcCallOptions ,并返回对更新对象的引用。
注意: 从移动对象other 将处于部分形成状态,在这种状态下,唯一有效的操作是销毁和分配新值。
QGrpcCallOptions &QGrpcCallOptions::operator=(const QGrpcCallOptions &other)
将other 指定为QGrpcCallOptions ,并返回更新对象的引用。
相关非成员
[since 6.8]
QDebug operator<<(QDebug debug, const QGrpcCallOptions &callOpts)
将callOpts 写入指定的流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.