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 <dennis.oberst@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
This commit is contained in:
Alexey Edelev 2025-06-13 09:36:34 +02:00
parent 3f24083f35
commit deea825f7a
8 changed files with 29 additions and 33 deletions

View File

@ -197,20 +197,20 @@ QGrpcCallOptions &QGrpcCallOptions::setMetadata(QHash<QByteArray, QByteArray> &&
/*! /*!
\since 6.10 \since 6.10
\fn const QMultiHash<QByteArray, QByteArray> &QGrpcCallOptions::metadata(QtGrpc::MultiValueTag) const & \fn const QMultiHash<QByteArray, QByteArray> &QGrpcCallOptions::metadata(QtGrpc::MultiValue_t) const &
\fn QMultiHash<QByteArray, QByteArray> QGrpcCallOptions::metadata(QtGrpc::MultiValueTag) && \fn QMultiHash<QByteArray, QByteArray> QGrpcCallOptions::metadata(QtGrpc::MultiValue_t) &&
\include qgrpccommonoptions.cpp metadata-multi \include qgrpccommonoptions.cpp metadata-multi
\sa {setMetadata(const QMultiHash<QByteArray, QByteArray>&)}{setMetadata} \sa {setMetadata(const QMultiHash<QByteArray, QByteArray>&)}{setMetadata}
*/ */
const QMultiHash<QByteArray, QByteArray> & const QMultiHash<QByteArray, QByteArray> &
QGrpcCallOptions::metadata(QtGrpc::MultiValueTag tag) const & noexcept QGrpcCallOptions::metadata(QtGrpc::MultiValue_t tag) const & noexcept
{ {
Q_D(const QGrpcCallOptions); Q_D(const QGrpcCallOptions);
return d->metadata(tag); return d->metadata(tag);
} }
QMultiHash<QByteArray, QByteArray> QGrpcCallOptions::metadata(QtGrpc::MultiValueTag tag) && QMultiHash<QByteArray, QByteArray> QGrpcCallOptions::metadata(QtGrpc::MultiValue_t tag) &&
{ {
Q_D(QGrpcCallOptions); Q_D(QGrpcCallOptions);
if (d->ref.loadRelaxed() != 1) if (d->ref.loadRelaxed() != 1)
@ -230,7 +230,7 @@ QMultiHash<QByteArray, QByteArray> QGrpcCallOptions::metadata(QtGrpc::MultiValue
\l{QGrpcChannelOptions::setMetadata(const QMultiHash<QByteArray, \l{QGrpcChannelOptions::setMetadata(const QMultiHash<QByteArray,
QByteArray>&)}{QGrpcChannelOptions::setMetadata(QMultiHash)}. QByteArray>&)}{QGrpcChannelOptions::setMetadata(QMultiHash)}.
\sa metadata(QtGrpc::MultiValueTag) \sa metadata(QtGrpc::MultiValue_t)
*/ */
QGrpcCallOptions &QGrpcCallOptions::setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata) QGrpcCallOptions &QGrpcCallOptions::setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata)
{ {

View File

@ -55,9 +55,9 @@ public:
Q_GRPC_EXPORT QGrpcCallOptions &setMetadata(QHash<QByteArray, QByteArray> &&metadata); Q_GRPC_EXPORT QGrpcCallOptions &setMetadata(QHash<QByteArray, QByteArray> &&metadata);
#endif #endif
[[nodiscard]] Q_GRPC_EXPORT const QMultiHash<QByteArray, QByteArray> & [[nodiscard]] Q_GRPC_EXPORT const QMultiHash<QByteArray, QByteArray> &
metadata(QtGrpc::MultiValueTag) const & noexcept; metadata(QtGrpc::MultiValue_t) const & noexcept;
[[nodiscard]] Q_GRPC_EXPORT QMultiHash<QByteArray, QByteArray> [[nodiscard]] Q_GRPC_EXPORT QMultiHash<QByteArray, QByteArray>
metadata(QtGrpc::MultiValueTag) &&; metadata(QtGrpc::MultiValue_t) &&;
Q_GRPC_EXPORT QGrpcCallOptions &setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata); Q_GRPC_EXPORT QGrpcCallOptions &setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata);
Q_GRPC_EXPORT QGrpcCallOptions &setMetadata(QMultiHash<QByteArray, QByteArray> &&metadata); Q_GRPC_EXPORT QGrpcCallOptions &setMetadata(QMultiHash<QByteArray, QByteArray> &&metadata);
Q_GRPC_EXPORT QGrpcCallOptions & Q_GRPC_EXPORT QGrpcCallOptions &

View File

@ -144,11 +144,11 @@ QGrpcChannelOptions &QGrpcChannelOptions::setDeadlineTimeout(std::chrono::millis
/*! /*!
\fn const QHash<QByteArray, QByteArray> &QGrpcChannelOptions::metadata() const & \fn const QHash<QByteArray, QByteArray> &QGrpcChannelOptions::metadata() const &
\fn QHash<QByteArray, QByteArray> QGrpcChannelOptions::metadata() && \fn QHash<QByteArray, QByteArray> 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 \include qgrpccommonoptions.cpp metadata
\sa metadata(QtGrpc::MultiValueTag), setMetadata() \sa metadata(QtGrpc::MultiValue_t), setMetadata()
*/ */
const QHash<QByteArray, QByteArray> &QGrpcChannelOptions::metadata() const & noexcept const QHash<QByteArray, QByteArray> &QGrpcChannelOptions::metadata() const & noexcept
{ {
@ -203,22 +203,22 @@ QGrpcChannelOptions &QGrpcChannelOptions::setMetadata(QHash<QByteArray, QByteArr
/*! /*!
\since 6.10 \since 6.10
\fn const QMultiHash<QByteArray, QByteArray> &QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag) const & \fn const QMultiHash<QByteArray, QByteArray> &QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t) const &
\fn QMultiHash<QByteArray, QByteArray> QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag) && \fn QMultiHash<QByteArray, QByteArray> QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t) &&
\include qgrpccommonoptions.cpp metadata-multi \include qgrpccommonoptions.cpp metadata-multi
\sa {setMetadata(const QMultiHash<QByteArray, QByteArray>&)}{setMetadata} \sa {setMetadata(const QMultiHash<QByteArray, QByteArray>&)}{setMetadata}
*/ */
const QMultiHash<QByteArray, QByteArray> & const QMultiHash<QByteArray, QByteArray> &
QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag tag) const & noexcept QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t tag) const & noexcept
{ {
Q_D(const QGrpcChannelOptions); Q_D(const QGrpcChannelOptions);
return d->metadata(tag); return d->metadata(tag);
} }
QMultiHash<QByteArray, QByteArray> QMultiHash<QByteArray, QByteArray>
QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag tag) && QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t tag) &&
{ {
Q_D(QGrpcChannelOptions); Q_D(QGrpcChannelOptions);
if (d->ref.loadRelaxed() != 1) if (d->ref.loadRelaxed() != 1)
@ -238,7 +238,7 @@ QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag tag) &&
\l{QGrpcCallOptions::setMetadata(const QMultiHash<QByteArray, \l{QGrpcCallOptions::setMetadata(const QMultiHash<QByteArray,
QByteArray>&)}{QGrpcCallOptions::setMetadata(QMultiHash)} QByteArray>&)}{QGrpcCallOptions::setMetadata(QMultiHash)}
\sa metadata(QtGrpc::MultiValueTag) \sa metadata(QtGrpc::MultiValue_t)
*/ */
QGrpcChannelOptions & QGrpcChannelOptions &
QGrpcChannelOptions::setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata) QGrpcChannelOptions::setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata)

View File

@ -60,9 +60,9 @@ public:
Q_GRPC_EXPORT QGrpcChannelOptions &setMetadata(QHash<QByteArray, QByteArray> &&metadata); Q_GRPC_EXPORT QGrpcChannelOptions &setMetadata(QHash<QByteArray, QByteArray> &&metadata);
#endif #endif
[[nodiscard]] Q_GRPC_EXPORT const QMultiHash<QByteArray, QByteArray> & [[nodiscard]] Q_GRPC_EXPORT const QMultiHash<QByteArray, QByteArray> &
metadata(QtGrpc::MultiValueTag) const & noexcept; metadata(QtGrpc::MultiValue_t) const & noexcept;
[[nodiscard]] Q_GRPC_EXPORT QMultiHash<QByteArray, QByteArray> [[nodiscard]] Q_GRPC_EXPORT QMultiHash<QByteArray, QByteArray>
metadata(QtGrpc::MultiValueTag) &&; metadata(QtGrpc::MultiValue_t) &&;
Q_GRPC_EXPORT QGrpcChannelOptions & Q_GRPC_EXPORT QGrpcChannelOptions &
setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata); setMetadata(const QMultiHash<QByteArray, QByteArray> &metadata);
Q_GRPC_EXPORT QGrpcChannelOptions &setMetadata(QMultiHash<QByteArray, QByteArray> &&metadata); Q_GRPC_EXPORT QGrpcChannelOptions &setMetadata(QMultiHash<QByteArray, QByteArray> &&metadata);

View File

@ -104,11 +104,11 @@ void QGrpcCommonOptions::setDeadlineTimeout(std::chrono::milliseconds t)
//! [metadata-multi] //! [metadata-multi]
*/ */
const QMultiHash<QByteArray, QByteArray> & const QMultiHash<QByteArray, QByteArray> &
QGrpcCommonOptions::metadata(QtGrpc::MultiValueTag /*tag*/) const & QGrpcCommonOptions::metadata(QtGrpc::MultiValue_t /*tag*/) const &
{ {
return m_metadataMulti; return m_metadataMulti;
} }
QMultiHash<QByteArray, QByteArray> QGrpcCommonOptions::metadata(QtGrpc::MultiValueTag /*tag*/) && QMultiHash<QByteArray, QByteArray> QGrpcCommonOptions::metadata(QtGrpc::MultiValue_t /*tag*/) &&
{ {
return std::move(m_metadataMulti); return std::move(m_metadataMulti);
} }
@ -144,7 +144,7 @@ void QGrpcCommonOptions::setMetadata(QMultiHash<QByteArray, QByteArray> &&md)
Adds \a key and \a value to the \l metadata if the exact pair is not already contained. 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. 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<QByteArray, QByteArray>&)}{setMetadata()} QMultiHash<QByteArray, QByteArray>&)}{setMetadata()}
//! [add-metadata] //! [add-metadata]
*/ */

View File

@ -42,8 +42,8 @@ public:
void setMetadata(const QHash<QByteArray, QByteArray> &md); void setMetadata(const QHash<QByteArray, QByteArray> &md);
void setMetadata(QHash<QByteArray, QByteArray> &&md); void setMetadata(QHash<QByteArray, QByteArray> &&md);
#endif #endif
const QMultiHash<QByteArray, QByteArray> &metadata(QtGrpc::MultiValueTag /*tag*/) const &; const QMultiHash<QByteArray, QByteArray> &metadata(QtGrpc::MultiValue_t /*tag*/) const &;
QMultiHash<QByteArray, QByteArray> metadata(QtGrpc::MultiValueTag /*tag*/) &&; QMultiHash<QByteArray, QByteArray> metadata(QtGrpc::MultiValue_t /*tag*/) &&;
void setMetadata(const QMultiHash<QByteArray, QByteArray> &md); void setMetadata(const QMultiHash<QByteArray, QByteArray> &md);
void setMetadata(QMultiHash<QByteArray, QByteArray> &&md); void setMetadata(QMultiHash<QByteArray, QByteArray> &&md);
void addMetadata(QByteArray &&key, QByteArray &&value); void addMetadata(QByteArray &&key, QByteArray &&value);

View File

@ -48,12 +48,7 @@ enum class StatusCode : quint8 {
Q_ENUM_NS(StatusCode) Q_ENUM_NS(StatusCode)
// ### Qt7: remove QHash metadata interfaces. // ### Qt7: remove QHash metadata interfaces.
enum class MultiValueTag : quint8 { Allow QT_DEPRECATED_X("use QtGrpc::MultiValue") }; inline QT_DEFINE_TAG(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
Q_CLASSINFO("RegisterEnumClassesUnscoped", "false") Q_CLASSINFO("RegisterEnumClassesUnscoped", "false")
} // namespace QtGrpc } // namespace QtGrpc

View File

@ -84,19 +84,20 @@
/*! /*!
\since 6.10 \since 6.10
\enum QtGrpc::MultiValueTag \struct QtGrpc::MultiValue_t
\inmodule QtGrpc
\inheaderfile QtGrpcNamespace
\brief Tag type used to access QMultiHash metadata. \brief Tag type used to access QMultiHash metadata.
\omitvalue Allow
\note This type is an implementation detail. Use QtGrpc::MultiValue for public API access. \note This type is an implementation detail. Use QtGrpc::MultiValue for public API access.
\sa QtGrpc::MultiValue, QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag), \sa QtGrpc::MultiValue, QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t),
QGrpcCallOptions::metadata(QtGrpc::MultiValueTag) QGrpcCallOptions::metadata(QtGrpc::MultiValue_t)
*/ */
/*! /*!
\since 6.10 \since 6.10
\variable QtGrpc::MultiValue \variable QtGrpc::MultiValue
\brief Tag used to access QMultiHash metadata. \brief Tag used to access QMultiHash metadata.
\sa QGrpcChannelOptions::metadata(QtGrpc::MultiValueTag), \sa QGrpcChannelOptions::metadata(QtGrpc::MultiValue_t),
QGrpcCallOptions::metadata(QtGrpc::MultiValueTag) QGrpcCallOptions::metadata(QtGrpc::MultiValue_t)
*/ */