DRY QHttpHeaders::combinedValue() implementation

Pick-to: 6.7
Task-number: QTBUG-122020
Change-Id: I6232ea725d47800a9236ed90b70004a915bc8b65
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
bb10
Juha Vuolle 2024-02-29 13:08:27 +02:00
parent c0e4b73743
commit de37316160
1 changed files with 16 additions and 18 deletions

View File

@ -790,6 +790,8 @@ public:
using Self = QExplicitlySharedDataPointer<QHttpHeadersPrivate>;
static void removeAll(Self &d, const HeaderName &name);
void combinedValue(const HeaderName &name, QByteArray &result) const;
QList<Header> headers;
};
@ -819,6 +821,18 @@ void QHttpHeadersPrivate::removeAll(Self &d, const HeaderName &name)
}
}
void QHttpHeadersPrivate::combinedValue(const HeaderName &name, QByteArray &result) const
{
const char* separator = "";
for (const auto &h : std::as_const(headers)) {
if (h.name == name) {
result.append(separator);
result.append(h.value);
separator = ", ";
}
}
}
/*!
Creates a new QHttpHeaders object.
*/
@ -1365,15 +1379,7 @@ QByteArray QHttpHeaders::combinedValue(QAnyStringView name) const
if (isEmpty())
return result;
const HeaderName hname(name);
const char* separator = "";
for (const auto &h : std::as_const(d->headers)) {
if (h.name == hname) {
result.append(separator);
result.append(h.value);
separator = ", ";
}
}
d->combinedValue(HeaderName{name}, result);
return result;
}
@ -1386,15 +1392,7 @@ QByteArray QHttpHeaders::combinedValue(WellKnownHeader name) const
if (isEmpty())
return result;
const HeaderName hname(name);
const char* separator = "";
for (const auto &h : std::as_const(d->headers)) {
if (h.name == hname) {
result.append(separator);
result.append(h.value);
separator = ", ";
}
}
d->combinedValue(HeaderName{name}, result);
return result;
}