Change QNetworkRequest/Reply rawHeader functions to take QASV

QHttpHeaders uses QASV for the header name field, and this aligns
these functions with that. Furthermore having QASV as a parameter
will allow a wider range of string types to be passed as a
parameter (convenience).

Resulted from API-review

Amends: 56bb4ac484adb544925b6d7b58e4fd1d77d49503

Change-Id: Iff42b75393b6470a2c34a1913dbe615bf21238db
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
(cherry picked from commit 8feb41e4462c9879a831d1c753d4200c3287e557)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Juha Vuolle 2024-01-29 16:17:28 +02:00 committed by Qt Cherry-pick Bot
parent 34d1d7a858
commit 4eba2323f9
5 changed files with 12 additions and 11 deletions

View File

@ -614,7 +614,7 @@ QVariant QNetworkReply::header(QNetworkRequest::KnownHeaders header) const
\sa rawHeader() \sa rawHeader()
\note In Qt versions prior to 6.7, this function took QByteArray only. \note In Qt versions prior to 6.7, this function took QByteArray only.
*/ */
bool QNetworkReply::hasRawHeader(QByteArrayView headerName) const bool QNetworkReply::hasRawHeader(QAnyStringView headerName) const
{ {
Q_D(const QNetworkReply); Q_D(const QNetworkReply);
return d->findRawHeader(headerName) != d->rawHeaders.constEnd(); return d->findRawHeader(headerName) != d->rawHeaders.constEnd();
@ -630,7 +630,7 @@ bool QNetworkReply::hasRawHeader(QByteArrayView headerName) const
\sa setRawHeader(), hasRawHeader(), header() \sa setRawHeader(), hasRawHeader(), header()
\note In Qt versions prior to 6.7, this function took QByteArray only. \note In Qt versions prior to 6.7, this function took QByteArray only.
*/ */
QByteArray QNetworkReply::rawHeader(QByteArrayView headerName) const QByteArray QNetworkReply::rawHeader(QAnyStringView headerName) const
{ {
Q_D(const QNetworkReply); Q_D(const QNetworkReply);
if (const auto it = d->findRawHeader(headerName); it != d->rawHeaders.constEnd()) if (const auto it = d->findRawHeader(headerName); it != d->rawHeaders.constEnd())

View File

@ -100,12 +100,12 @@ public:
#if QT_NETWORK_REMOVED_SINCE(6, 7) #if QT_NETWORK_REMOVED_SINCE(6, 7)
bool hasRawHeader(const QByteArray &headerName) const; bool hasRawHeader(const QByteArray &headerName) const;
#endif #endif
bool hasRawHeader(QByteArrayView headerName) const; bool hasRawHeader(QAnyStringView headerName) const;
QList<QByteArray> rawHeaderList() const; QList<QByteArray> rawHeaderList() const;
#if QT_NETWORK_REMOVED_SINCE(6, 7) #if QT_NETWORK_REMOVED_SINCE(6, 7)
QByteArray rawHeader(const QByteArray &headerName) const; QByteArray rawHeader(const QByteArray &headerName) const;
#endif #endif
QByteArray rawHeader(QByteArrayView headerName) const; QByteArray rawHeader(QAnyStringView headerName) const;
typedef QPair<QByteArray, QByteArray> RawHeaderPair; typedef QPair<QByteArray, QByteArray> RawHeaderPair;
const QList<RawHeaderPair>& rawHeaderPairs() const; const QList<RawHeaderPair>& rawHeaderPairs() const;

View File

@ -631,7 +631,7 @@ void QNetworkRequest::setHeader(KnownHeaders header, const QVariant &value)
\sa rawHeader(), setRawHeader() \sa rawHeader(), setRawHeader()
\note In Qt versions prior to 6.7, this function took QByteArray only. \note In Qt versions prior to 6.7, this function took QByteArray only.
*/ */
bool QNetworkRequest::hasRawHeader(QByteArrayView headerName) const bool QNetworkRequest::hasRawHeader(QAnyStringView headerName) const
{ {
return d->findRawHeader(headerName) != d->rawHeaders.constEnd(); return d->findRawHeader(headerName) != d->rawHeaders.constEnd();
} }
@ -647,7 +647,7 @@ bool QNetworkRequest::hasRawHeader(QByteArrayView headerName) const
\sa header(), setRawHeader() \sa header(), setRawHeader()
\note In Qt versions prior to 6.7, this function took QByteArray only. \note In Qt versions prior to 6.7, this function took QByteArray only.
*/ */
QByteArray QNetworkRequest::rawHeader(QByteArrayView headerName) const QByteArray QNetworkRequest::rawHeader(QAnyStringView headerName) const
{ {
if (const auto it = d->findRawHeader(headerName); it != d->rawHeaders.constEnd()) if (const auto it = d->findRawHeader(headerName); it != d->rawHeaders.constEnd())
return it->second; return it->second;
@ -1329,11 +1329,12 @@ static QVariant parseHeaderValue(QNetworkRequest::KnownHeaders header, const QBy
} }
QNetworkHeadersPrivate::RawHeadersList::ConstIterator QNetworkHeadersPrivate::RawHeadersList::ConstIterator
QNetworkHeadersPrivate::findRawHeader(QByteArrayView key) const QNetworkHeadersPrivate::findRawHeader(QAnyStringView key) const
{ {
auto isKeyEqual = [key](const auto &headerPair) auto isKeyEqual = [key](const auto &headerPair)
{ {
return headerPair.first.compare(key, Qt::CaseInsensitive) == 0; QLatin1StringView name{headerPair.first};
return QAnyStringView::compare(name, key, Qt::CaseInsensitive) == 0;
}; };
return std::find_if(rawHeaders.begin(), rawHeaders.end(), isKeyEqual); return std::find_if(rawHeaders.begin(), rawHeaders.end(), isKeyEqual);
} }

View File

@ -127,12 +127,12 @@ public:
#if QT_NETWORK_REMOVED_SINCE(6, 7) #if QT_NETWORK_REMOVED_SINCE(6, 7)
bool hasRawHeader(const QByteArray &headerName) const; bool hasRawHeader(const QByteArray &headerName) const;
#endif #endif
bool hasRawHeader(QByteArrayView headerName) const; bool hasRawHeader(QAnyStringView headerName) const;
QList<QByteArray> rawHeaderList() const; QList<QByteArray> rawHeaderList() const;
#if QT_NETWORK_REMOVED_SINCE(6, 7) #if QT_NETWORK_REMOVED_SINCE(6, 7)
QByteArray rawHeader(const QByteArray &headerName) const; QByteArray rawHeader(const QByteArray &headerName) const;
#endif #endif
QByteArray rawHeader(QByteArrayView headerName) const; QByteArray rawHeader(QAnyStringView headerName) const;
void setRawHeader(const QByteArray &headerName, const QByteArray &value); void setRawHeader(const QByteArray &headerName, const QByteArray &value);
// attributes // attributes

View File

@ -40,7 +40,7 @@ public:
AttributesMap attributes; AttributesMap attributes;
QPointer<QObject> originatingObject; QPointer<QObject> originatingObject;
RawHeadersList::ConstIterator findRawHeader(QByteArrayView key) const; RawHeadersList::ConstIterator findRawHeader(QAnyStringView key) const;
RawHeadersList allRawHeaders() const; RawHeadersList allRawHeaders() const;
QList<QByteArray> rawHeadersKeys() const; QList<QByteArray> rawHeadersKeys() const;
void setRawHeader(const QByteArray &key, const QByteArray &value); void setRawHeader(const QByteArray &key, const QByteArray &value);