From deea825f7a23e36c9bdcf2859965451a0faceb97 Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Fri, 13 Jun 2025 09:36:34 +0200 Subject: [PATCH] Use QT_DEFINE_TAG for the multi value metadata tag definition Avoid using improper default-constuctable enum class, use the exising API for the tag definition instead. Pick-to: 6.10 Change-Id: Id75cb7e06a54139116595c60ec09f3810313f26b Reviewed-by: Dennis Oberst Reviewed-by: Marc Mutz --- src/grpc/qgrpccalloptions.cpp | 10 +++++----- src/grpc/qgrpccalloptions.h | 4 ++-- src/grpc/qgrpcchanneloptions.cpp | 14 +++++++------- src/grpc/qgrpcchanneloptions.h | 4 ++-- src/grpc/qgrpccommonoptions.cpp | 6 +++--- src/grpc/qgrpccommonoptions_p.h | 4 ++-- src/grpc/qtgrpcnamespace.h | 7 +------ src/grpc/qtgrpcnamespace.qdoc | 13 +++++++------ 8 files changed, 29 insertions(+), 33 deletions(-) diff --git a/src/grpc/qgrpccalloptions.cpp b/src/grpc/qgrpccalloptions.cpp index f8770dac..4d5c7975 100644 --- a/src/grpc/qgrpccalloptions.cpp +++ b/src/grpc/qgrpccalloptions.cpp @@ -197,20 +197,20 @@ QGrpcCallOptions &QGrpcCallOptions::setMetadata(QHash && /*! \since 6.10 - \fn const QMultiHash &QGrpcCallOptions::metadata(QtGrpc::MultiValueTag) const & - \fn QMultiHash QGrpcCallOptions::metadata(QtGrpc::MultiValueTag) && + \fn const QMultiHash &QGrpcCallOptions::metadata(QtGrpc::MultiValue_t) const & + \fn QMultiHash QGrpcCallOptions::metadata(QtGrpc::MultiValue_t) && \include qgrpccommonoptions.cpp metadata-multi \sa {setMetadata(const QMultiHash&)}{setMetadata} */ const QMultiHash & -QGrpcCallOptions::metadata(QtGrpc::MultiValueTag tag) const & noexcept +QGrpcCallOptions::metadata(QtGrpc::MultiValue_t tag) const & noexcept { Q_D(const QGrpcCallOptions); return d->metadata(tag); } -QMultiHash QGrpcCallOptions::metadata(QtGrpc::MultiValueTag tag) && +QMultiHash QGrpcCallOptions::metadata(QtGrpc::MultiValue_t tag) && { Q_D(QGrpcCallOptions); if (d->ref.loadRelaxed() != 1) @@ -230,7 +230,7 @@ QMultiHash QGrpcCallOptions::metadata(QtGrpc::MultiValue \l{QGrpcChannelOptions::setMetadata(const QMultiHash&)}{QGrpcChannelOptions::setMetadata(QMultiHash)}. - \sa metadata(QtGrpc::MultiValueTag) + \sa metadata(QtGrpc::MultiValue_t) */ QGrpcCallOptions &QGrpcCallOptions::setMetadata(const QMultiHash &metadata) { diff --git a/src/grpc/qgrpccalloptions.h b/src/grpc/qgrpccalloptions.h index 600da0c6..7dc072c6 100644 --- a/src/grpc/qgrpccalloptions.h +++ b/src/grpc/qgrpccalloptions.h @@ -55,9 +55,9 @@ public: Q_GRPC_EXPORT QGrpcCallOptions &setMetadata(QHash &&metadata); #endif [[nodiscard]] Q_GRPC_EXPORT const QMultiHash & - metadata(QtGrpc::MultiValueTag) const & noexcept; + metadata(QtGrpc::MultiValue_t) const & noexcept; [[nodiscard]] Q_GRPC_EXPORT QMultiHash - metadata(QtGrpc::MultiValueTag) &&; + metadata(QtGrpc::MultiValue_t) &&; Q_GRPC_EXPORT QGrpcCallOptions &setMetadata(const QMultiHash &metadata); Q_GRPC_EXPORT QGrpcCallOptions &setMetadata(QMultiHash &&metadata); Q_GRPC_EXPORT QGrpcCallOptions & diff --git a/src/grpc/qgrpcchanneloptions.cpp b/src/grpc/qgrpcchanneloptions.cpp index 6a552cbc..79c5592c 100644 --- a/src/grpc/qgrpcchanneloptions.cpp +++ b/src/grpc/qgrpcchanneloptions.cpp @@ -144,11 +144,11 @@ QGrpcChannelOptions &QGrpcChannelOptions::setDeadlineTimeout(std::chrono::millis /*! \fn const QHash &QGrpcChannelOptions::metadata() const & \fn QHash QGrpcChannelOptions::metadata() && - \deprecated [6.13] Use \l{metadata(QtGrpc::MultiValueTag)}{metadata(QtGrpc::MultiValue)} instead. + \deprecated [6.13] Use \l{metadata(QtGrpc::MultiValue_t)}{metadata(QtGrpc::MultiValue)} instead. \include qgrpccommonoptions.cpp metadata - \sa metadata(QtGrpc::MultiValueTag), setMetadata() + \sa metadata(QtGrpc::MultiValue_t), setMetadata() */ const QHash &QGrpcChannelOptions::metadata() const & noexcept { @@ -203,22 +203,22 @@ QGrpcChannelOptions &QGrpcChannelOptions::setMetadata(QHash &QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag) const & - \fn QMultiHash QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag) && + \fn const QMultiHash &QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t) const & + \fn QMultiHash QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t) && \include qgrpccommonoptions.cpp metadata-multi \sa {setMetadata(const QMultiHash&)}{setMetadata} */ const QMultiHash & -QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag tag) const & noexcept +QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t tag) const & noexcept { Q_D(const QGrpcChannelOptions); return d->metadata(tag); } QMultiHash -QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag tag) && +QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t tag) && { Q_D(QGrpcChannelOptions); if (d->ref.loadRelaxed() != 1) @@ -238,7 +238,7 @@ QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag tag) && \l{QGrpcCallOptions::setMetadata(const QMultiHash&)}{QGrpcCallOptions::setMetadata(QMultiHash)} - \sa metadata(QtGrpc::MultiValueTag) + \sa metadata(QtGrpc::MultiValue_t) */ QGrpcChannelOptions & QGrpcChannelOptions::setMetadata(const QMultiHash &metadata) diff --git a/src/grpc/qgrpcchanneloptions.h b/src/grpc/qgrpcchanneloptions.h index caa2e4ca..459345b0 100644 --- a/src/grpc/qgrpcchanneloptions.h +++ b/src/grpc/qgrpcchanneloptions.h @@ -60,9 +60,9 @@ public: Q_GRPC_EXPORT QGrpcChannelOptions &setMetadata(QHash &&metadata); #endif [[nodiscard]] Q_GRPC_EXPORT const QMultiHash & - metadata(QtGrpc::MultiValueTag) const & noexcept; + metadata(QtGrpc::MultiValue_t) const & noexcept; [[nodiscard]] Q_GRPC_EXPORT QMultiHash - metadata(QtGrpc::MultiValueTag) &&; + metadata(QtGrpc::MultiValue_t) &&; Q_GRPC_EXPORT QGrpcChannelOptions & setMetadata(const QMultiHash &metadata); Q_GRPC_EXPORT QGrpcChannelOptions &setMetadata(QMultiHash &&metadata); diff --git a/src/grpc/qgrpccommonoptions.cpp b/src/grpc/qgrpccommonoptions.cpp index 556b759d..1989c92e 100644 --- a/src/grpc/qgrpccommonoptions.cpp +++ b/src/grpc/qgrpccommonoptions.cpp @@ -104,11 +104,11 @@ void QGrpcCommonOptions::setDeadlineTimeout(std::chrono::milliseconds t) //! [metadata-multi] */ const QMultiHash & -QGrpcCommonOptions::metadata(QtGrpc::MultiValueTag /*tag*/) const & +QGrpcCommonOptions::metadata(QtGrpc::MultiValue_t /*tag*/) const & { return m_metadataMulti; } -QMultiHash QGrpcCommonOptions::metadata(QtGrpc::MultiValueTag /*tag*/) && +QMultiHash QGrpcCommonOptions::metadata(QtGrpc::MultiValue_t /*tag*/) && { return std::move(m_metadataMulti); } @@ -144,7 +144,7 @@ void QGrpcCommonOptions::setMetadata(QMultiHash &&md) Adds \a key and \a value to the \l metadata if the exact pair is not already contained. The same key may appear multiple times with different values. - \sa {metadata(QtGrpc::MultiValueTag)}{metadata()} {setMetadata(const + \sa {metadata(QtGrpc::MultiValue_t)}{metadata()} {setMetadata(const QMultiHash&)}{setMetadata()} //! [add-metadata] */ diff --git a/src/grpc/qgrpccommonoptions_p.h b/src/grpc/qgrpccommonoptions_p.h index 38c46bc1..b53c3f92 100644 --- a/src/grpc/qgrpccommonoptions_p.h +++ b/src/grpc/qgrpccommonoptions_p.h @@ -42,8 +42,8 @@ public: void setMetadata(const QHash &md); void setMetadata(QHash &&md); #endif - const QMultiHash &metadata(QtGrpc::MultiValueTag /*tag*/) const &; - QMultiHash metadata(QtGrpc::MultiValueTag /*tag*/) &&; + const QMultiHash &metadata(QtGrpc::MultiValue_t /*tag*/) const &; + QMultiHash metadata(QtGrpc::MultiValue_t /*tag*/) &&; void setMetadata(const QMultiHash &md); void setMetadata(QMultiHash &&md); void addMetadata(QByteArray &&key, QByteArray &&value); diff --git a/src/grpc/qtgrpcnamespace.h b/src/grpc/qtgrpcnamespace.h index 225d21ef..979f59a0 100644 --- a/src/grpc/qtgrpcnamespace.h +++ b/src/grpc/qtgrpcnamespace.h @@ -48,12 +48,7 @@ enum class StatusCode : quint8 { Q_ENUM_NS(StatusCode) // ### Qt7: remove QHash metadata interfaces. -enum class MultiValueTag : quint8 { Allow QT_DEPRECATED_X("use QtGrpc::MultiValue") }; -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -QT_WARNING_DISABLE_CLANG("-Wunused-const-variable") -inline static constexpr auto MultiValue = QtGrpc::MultiValueTag::Allow; -QT_WARNING_POP +inline QT_DEFINE_TAG(MultiValue); Q_CLASSINFO("RegisterEnumClassesUnscoped", "false") } // namespace QtGrpc diff --git a/src/grpc/qtgrpcnamespace.qdoc b/src/grpc/qtgrpcnamespace.qdoc index 93724c44..7ef01b2a 100644 --- a/src/grpc/qtgrpcnamespace.qdoc +++ b/src/grpc/qtgrpcnamespace.qdoc @@ -84,19 +84,20 @@ /*! \since 6.10 - \enum QtGrpc::MultiValueTag + \struct QtGrpc::MultiValue_t + \inmodule QtGrpc + \inheaderfile QtGrpcNamespace \brief Tag type used to access QMultiHash metadata. - \omitvalue Allow \note This type is an implementation detail. Use QtGrpc::MultiValue for public API access. - \sa QtGrpc::MultiValue, QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag), - QGrpcCallOptions::metadata(QtGrpc::MultiValueTag) + \sa QtGrpc::MultiValue, QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t), + QGrpcCallOptions::metadata(QtGrpc::MultiValue_t) */ /*! \since 6.10 \variable QtGrpc::MultiValue \brief Tag used to access QMultiHash metadata. - \sa QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag), - QGrpcCallOptions::metadata(QtGrpc::MultiValueTag) + \sa QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t), + QGrpcCallOptions::metadata(QtGrpc::MultiValue_t) */