DRY QHttpHeaders::values() implementation

Pick-to: 6.7
Task-number: QTBUG-122020
Change-Id: I7401eef86b133d33f32cd786dffe9a06c4ac7aba
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
Juha Vuolle 2024-02-29 13:18:47 +02:00
parent de37316160
commit 9c0a79d323

View File

@ -791,6 +791,7 @@ public:
static void removeAll(Self &d, const HeaderName &name); static void removeAll(Self &d, const HeaderName &name);
void combinedValue(const HeaderName &name, QByteArray &result) const; void combinedValue(const HeaderName &name, QByteArray &result) const;
void values(const HeaderName &name, QList<QByteArray> &result) const;
QList<Header> headers; QList<Header> headers;
}; };
@ -833,6 +834,14 @@ void QHttpHeadersPrivate::combinedValue(const HeaderName &name, QByteArray &resu
} }
} }
void QHttpHeadersPrivate::values(const HeaderName &name, QList<QByteArray> &result) const
{
for (const auto &h : std::as_const(headers)) {
if (h.name == name)
result.append(h.value);
}
}
/*! /*!
Creates a new QHttpHeaders object. Creates a new QHttpHeaders object.
*/ */
@ -1308,12 +1317,7 @@ QList<QByteArray> QHttpHeaders::values(QAnyStringView name) const
if (isEmpty()) if (isEmpty())
return result; return result;
const HeaderName hname(name); d->values(HeaderName{name}, result);
for (const auto &h : std::as_const(d->headers)) {
if (h.name == hname)
result.append(h.value);
}
return result; return result;
} }
@ -1322,17 +1326,12 @@ QList<QByteArray> QHttpHeaders::values(QAnyStringView name) const
*/ */
QList<QByteArray> QHttpHeaders::values(WellKnownHeader name) const QList<QByteArray> QHttpHeaders::values(WellKnownHeader name) const
{ {
QList<QByteArray> values; QList<QByteArray> result;
if (isEmpty()) if (isEmpty())
return values; return result;
const HeaderName hname(name); d->values(HeaderName{name}, result);
return result;
for (const auto &h : std::as_const(d->headers)) {
if (h.name == hname)
values.append(h.value);
}
return values;
} }
/*! /*!