QGrpcCallOptions Class
QGrpcCallOptions 클래스는 개별 RPC를 세부적으로 조정할 수 있는 다양한 옵션을 제공합니다. 더 보기...
| 헤더: | #include <QGrpcCallOptions> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Grpc) target_link_libraries(mytarget PRIVATE Qt6::Grpc) |
| 다음부터: | Qt 6.6부터 |
| QML에서: | GrpcCallOptions |
QGrpcCallOptions 비교
| 범주 | 비교 가능한 유형 |
|---|---|
| 동등성 | QGrpcCallOptions |
공개 함수
| 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 |
(since 6.12) std::optional<quint64> | maximumReceiveMessageSize() 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.12) std::optional<QtGrpc::CompressionAlgorithm> | requestCompression() const |
| QGrpcCallOptions & | setDeadlineTimeout(std::chrono::milliseconds timeout) |
(since 6.11) QGrpcCallOptions & | setFilterServerMetadata(bool value) |
(since 6.12) QGrpcCallOptions & | setMaximumReceiveMessageSize(quint64 size) |
(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.12) QGrpcCallOptions & | setRequestCompression(QtGrpc::CompressionAlgorithm algorithm) |
(since 6.8) void | swap(QGrpcCallOptions &other) |
(since 6.8) | operator QVariant() const |
| QGrpcCallOptions & | operator=(QGrpcCallOptions &&other) |
| QGrpcCallOptions & | operator=(const QGrpcCallOptions &other) |
관련 비회원
(since 6.11) bool | operator!=(const QGrpcCallOptions &lhs, const QGrpcCallOptions &rhs) |
(since 6.8) QDebug | operator<<(QDebug debug, const QGrpcCallOptions &callOpts) |
(since 6.11) bool | operator==(const QGrpcCallOptions &lhs, const QGrpcCallOptions &rhs) |
상세 설명
QGrpcCallOptions를 사용하면 개별 원격 프로시저 호출(RPC)을 사용자 정의할 수 있습니다. 생성된 클라이언트 인터페이스는 QGrpcCallOptions를 전달할 수 있는 액세스 지점을 제공합니다. 이 옵션들은 QGrpcChannelOptions 를 통해 설정된 옵션보다 우선 적용됩니다.
RPC 간에 공유되는 기본 옵션을 구성하려면 QGrpcChannelOptions 를 사용하십시오.
QGrpcCallOptions callOpts;
// 개별 RPC에 대한 메타데이터 설정
callOpts.setMetadata({
{ "header" , "value1" },
{ "header" , "value2" },
});
const auto &md = callOpts.metadata(QtGrpc::MultiValue);
qDebug() << "Call Metadata: " << md;
// 개별 RPC에 대해 2초의 시간 제한을 설정합니다.
callOpts.setDeadlineTimeout(2s);
qDebug() << "Call timeout: " << callOpts.deadlineTimeout();멤버 함수 설명서
QGrpcCallOptions::QGrpcCallOptions()
빈 QGrpcCallOptions 객체를 기본 생성합니다.
QGrpcCallOptions::QGrpcCallOptions(const QGrpcCallOptions &other)
other 에서 QGrpcCallOptions 객체를 복사하여 생성합니다.
[constexpr noexcept default] QGrpcCallOptions::QGrpcCallOptions(QGrpcCallOptions &&other)
other 에서 새로운 QGrpcCallOptions 객체를 생성합니다.
참고: 이동된객체인 ` other `는 부분적으로 형성된 상태가 되며, 이 상태에서는 소멸과 새 값 할당만이 유효한 연산입니다.
[noexcept] QGrpcCallOptions::~QGrpcCallOptions()
QGrpcCallOptions 를 삭제합니다.
[since 6.10] QGrpcCallOptions &QGrpcCallOptions::addMetadata(QByteArrayView key, QByteArrayView value)
정확히 일치하는 키-값 쌍이 아직 포함되어 있지 않은 경우, metadata 에 key 및 value 을 추가합니다. 동일한 키가 서로 다른 값을 가지고 여러 번 나타날 수 있습니다.
참고: grpc- 또는 qtgrpc- 접두사가 붙은 키는 gRPC™ 및 QtGrpc 에 의해 예약되어 있습니다. 이를 사용하는 제공된 항목은 요청이 구성될 때 무시됩니다. 구체적인 채널에서는 추가적인 제한이 적용될 수 있습니다. QGrpcHttp2Channel#Reserved metadata keys 를 참조하십시오.
참고: 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()도 참조하십시오 .
[since 6.12] std::optional<quint64> QGrpcCallOptions::maximumReceiveMessageSize() const
수신되는 gRPC 메시지의 허용되는 최대 크기(바이트 단위)를 반환합니다. 이 제한은 전송 계층 수준의 암호 해독 및 메시지별 압축 해제가 완료된 후, 디코딩된 gRPC 프레임 페이로드에 적용됩니다.
값이 지정되지 않은 경우, 빈 ` std::optional`를 반환합니다.
기본적으로 이 값은 지정되지 않습니다.
참고: 이 옵션이 명시적으로 설정되지 않은 경우,` QGrpcHttp2Channel `는 ` QT_GRPC_MAXIMUM_RECEIVE_MESSAGE_SIZE ` 환경 변수를 대체값으로 사용합니다. 환경 변수가 설정되지 않은 경우, 내장된 기본값인 4 MiB가 사용됩니다. l{환경 변수 대체값}을 참조하십시오.
이 함수는 Qt 6.12에서 도입되었습니다.
setMaximumReceiveMessageSize() 및 QGrpcChannelOptions::maximumReceiveMessageSize()도 참조하십시오 .
[until 6.13] QHash<QByteArray, QByteArray> QGrpcCallOptions::metadata() &&
[noexcept, until 6.13] const QHash<QByteArray, QByteArray> &QGrpcCallOptions::metadata() const &
이 함수는 버전 6.13에서 사용 중단될 예정입니다.
대신 ` QMultiHash ` 오버로드를 사용하십시오.
메타데이터를 반환합니다. 이 필드가 설정되지 않은 경우, 빈 메타데이터를 반환합니다.
참고: grpc- 또는 qtgrpc- 접두사가 붙은키는 gRPC 및 QtGrpc 에 의해 예약되어 있습니다. 요청이 생성될 때, 이러한 키를 사용하는 제공된 항목은 무시됩니다. 구체적인 채널에 따라 추가 제한이 적용될 수 있습니다. QGrpcHttp2Channel#Reserved metadata keys 를 참조하십시오.
setMetadata()도 참조하십시오 .
[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 &
메타데이터를 반환합니다. 이 필드가 설정되지 않은 경우, 빈 메타데이터를 반환합니다.
참고: grpc- 또는 qtgrpc- 접두사가 붙은키는 gRPC 및 QtGrpc 에서 예약되어 있습니다. 요청이 생성될 때 이러한 키를 사용하는 항목은 무시됩니다. 구체적인 채널에 따라 추가 제한이 적용될 수 있습니다. 자세한 내용은 QGrpcHttp2Channel#Reserved metadata keys 를 참조하십시오. 키당 여러 개의 값을 지원합니다.
const auto &md = opts.metadata(QtGrpc::MultiValue);이 함수들은 Qt 6.10에서 도입되었습니다.
setMetadata도 참조하십시오 .
[since 6.12] std::optional<QtGrpc::CompressionAlgorithm> QGrpcCallOptions::requestCompression() const
이 채널 또는 통화에서 발신 메시지를 압축하는 데 사용된 압축 알고리즘을 반환합니다.
이 필드가 설정되지 않은 경우, 빈 ` std::optional`를 반환합니다.
이 함수는 Qt 6.12에서 도입되었습니다.
setRequestCompression() 및 QGrpcChannelOptions::requestCompression()도 참조하십시오 .
QGrpcCallOptions &QGrpcCallOptions::setDeadlineTimeout(std::chrono::milliseconds timeout)
timeout 를 설정하고, 업데이트된 객체에 대한 참조를 반환합니다.
데드라인은 클라이언트가 서버의 응답을 기다릴 수 있는 최대 시간을 설정합니다. 실제 데드라인은 RPC의 시작 시간에 ` timeout ` 값을 더하여 계산됩니다.
데드라인은 RPC의 전체 수명 기간에 적용되며, 여기에는 이전에 시작된 호출에 대한 최종 응답( QGrpcStatus ) 수신도 포함되므로 (장기간 지속되는) 스트림의 경우 원치 않는 결과가 발생할 수 있습니다.
참고: 이 필드를설정하면 해당 채널 옵션 필드가 재정의됩니다 — QGrpcChannelOptions::setDeadlineTimeout() 참조
deadlineTimeout()도 참조하십시오 .
[since 6.11] QGrpcCallOptions &QGrpcCallOptions::setFilterServerMetadata(bool value)
value 의 값이 true 인 경우, gRPC 전송 프로토콜에 의해 정의된 프로토콜 관련 메타데이터(예: 예약된 grpc- 키)는 제외됩니다. value 의 값이 false 인 경우, 서버로부터 수신된 모든 메타데이터가 포함됩니다.
참고: 이 필드를설정하면 해당 채널 옵션 필드가 재정의됩니다 — QGrpcChannelOptions::setFilterServerMetadata() 참조
이 함수는 Qt 6.11에서 도입되었습니다.
filterServerMetadata() 및 QGrpcChannelOptions::setFilterServerMetadata()도 참조하십시오 .
[since 6.12] QGrpcCallOptions &QGrpcCallOptions::setMaximumReceiveMessageSize(quint64 size)
수신 메시지의 최대 길이 size 를 바이트 단위로 설정하고, 업데이트된 객체에 대한 참조를 반환합니다.
이 제한을 초과하는 메시지는 페이로드가 버퍼링되기 전에 ‘ StatusCode::ResourceExhausted ’ 오류와 함께 거부됩니다. 이 값은 그대로 사용되므로, size 의 0 매개변수는 빈 메시지만 허용합니다.
참고: 구체적인 채널 구현에 따라 유효한 제한에 대한 엄격한 상한이 적용될 수 있습니다. QGrpcHttp2Channel 전송은 이 값을 gRPC-over-HTTP/2 프레임 페이로드(2^32 - 1)의 최대 바이트 수, 또는 32비트 플랫폼에서 qsizetype 의 최대값에서 5바이트 gRPC 프레임 헤더를 뺀 값으로 제한합니다. 설정된 값이 이 상한보다 크면 해당 상한으로 제한됩니다.
참고: 이 필드를설정하면 해당 채널 옵션 필드가 재정의됩니다. 자세한 내용은 QGrpcChannelOptions::setMaximumReceiveMessageSize 를 참조하십시오.
이 함수는 Qt 6.12에서 도입되었습니다.
maximumReceiveMessageSize() 및 QGrpcChannelOptions::setMaximumReceiveMessageSize()도 참조하십시오 .
[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 를 설정하고 업데이트된 객체에 대한 참조를 반환합니다.
참고: grpc- 또는 qtgrpc- 접두사가 붙은키는 gRPC 및 QtGrpc 에 의해 예약되어 있습니다. 요청이 생성될 때, 이러한 키를 사용하는 제공된 항목은 무시됩니다. 구체적인 채널에 따라 추가 제한이 적용될 수 있습니다. QGrpcHttp2Channel#Reserved metadata keys 를 참조하십시오.
참고: RPC가 시작될 때호출 메타데이터는 채널 수준의 메타데이터와 병합됩니다. 자세한 내용은 QGrpcChannelOptions::setMetadata(QMultiHash)를 참조하십시오.
metadata()도 참조하십시오 .
[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 를 설정하고, 업데이트된 객체에 대한 참조를 반환합니다.
참고: grpc- 또는 qtgrpc- 접두사가 붙은키는 gRPC 및 QtGrpc 에 의해 예약되어 있습니다. 요청이 구성될 때, 이러한 접두사를 사용하는 항목은 무시됩니다. 구체적인 채널에 따라 추가 제한이 적용될 수 있습니다. QGrpcHttp2Channel#Reserved metadata keys 를 참조하십시오. 키당 여러 값을 지원합니다.
참고: RPC가 시작될 때호출 메타데이터는 채널 수준의 메타데이터와 병합됩니다. 자세한 내용은 QGrpcChannelOptions::setMetadata(QMultiHash)를 참조하십시오.
이 함수들은 Qt 6.10에서 도입되었습니다.
metadata(QtGrpc::MultiValue_t)도 참조하십시오 .
[since 6.12] QGrpcCallOptions &QGrpcCallOptions::setRequestCompression(QtGrpc::CompressionAlgorithm algorithm)
클라이언트가 전송하는 메시지를 압축하는 데 사용되는 압축 방식 algorithm 을 설정하고, 업데이트된 객체에 대한 참조를 반환합니다.
이 값이 설정되면 해당 알고리즘이 ` grpc-encoding ` 요청 헤더에 명시됩니다. 각 메시지는 독립적으로 압축되며, 압축으로 인해 페이로드 크기가 줄어들지 않는 경우, ` Compressed-Flag `가 ` 0 `로 설정되어 있더라도 메시지는 압축되지 않은 상태로 전송됩니다.
참고: 민감한 데이터와 공격자의 영향을 받을 가능성이 있는 데이터가 모두 포함된 메시지를압축하면 , 연결이 CRIME이나 BREACH와 같은 압축 사이드 채널 공격에 노출될 수 있습니다. 가능하면 이러한 메시지의 압축을 피하거나, 민감한 데이터와 신뢰할 수 없는 데이터를 서로 다른 요청으로 분리하십시오.
참고: 이 필드를설정하면 해당 채널 옵션 필드의 설정이 무시됩니다.
이 함수는 Qt 6.12에서 도입되었습니다.
requestCompression() 및 QGrpcChannelOptions::setRequestCompression()도 참조하십시오 .
[noexcept, since 6.8] void QGrpcCallOptions::swap(QGrpcCallOptions &other)
other 를 이 객체로 교체합니다. 이 작업은 매우 빠르며 실패하는 일이 없습니다.
이 함수는 Qt 6.8에서 도입되었습니다.
[since 6.8] QGrpcCallOptions::operator QVariant() const
이 객체를 사용하여 새로운 ` QVariant ` 객체를 생성합니다.
이 함수는 Qt 6.8에서 도입되었습니다.
[noexcept] QGrpcCallOptions &QGrpcCallOptions::operator=(QGrpcCallOptions &&other)
other 를 이 QGrpcCallOptions 로 이동 할당하고, 업데이트된 객체에 대한 참조를 반환합니다.
참고: 이동된객체 other 는 부분적으로 형성된 상태가 되며, 이 상태에서는 소멸과 새 값 할당만이 유효한 연산입니다.
QGrpcCallOptions &QGrpcCallOptions::operator=(const QGrpcCallOptions &other)
이 QGrpcCallOptions 에 other 을 할당하고, 업데이트된 객체에 대한 참조를 반환합니다.
관련 비멤버
[noexcept, since 6.11] bool operator!=(const QGrpcCallOptions &lhs, const QGrpcCallOptions &rhs)
lhs 및 rhs 에 있는 deadlineTimeout, filterServerMetadata, maximumReceiveMessageSize, requestCompression, metadata(QtGrpc::MultiValue_t)의 값이 서로 다를 경우 true 를 반환합니다.
이 함수는 Qt 6.11에서 도입되었습니다.
[since 6.8] QDebug operator<<(QDebug debug, const QGrpcCallOptions &callOpts)
지정된 스트림 debug 에 ` callOpts `을 기록합니다.
이 함수는 Qt 6.8에서 도입되었습니다.
[noexcept, since 6.11] bool operator==(const QGrpcCallOptions &lhs, const QGrpcCallOptions &rhs)
lhs 및 rhs 에 정의된 ` deadlineTimeout`, ` filterServerMetadata`, ` maximumReceiveMessageSize`, ` requestCompression`, ` metadata`(QtGrpc::MultiValue_t) 값이 모두 동일한 경우 ` true `를 반환합니다.
이 함수는 Qt 6.11에서 도입되었습니다.
© 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.