24    return std::find_if(headers.cbegin(), headers.cend(), matchKey);
 
   29    : m_data(other.m_data)
 
 
   35    return header(
"Content-Disposition");
 
 
   59    return header(
"Content-Encoding");
 
 
   64    setHeader(
"Content-Encoding"_qba, encoding);
 
 
   98    auto result = findHeaderConst(m_data, 
"Content-Type");
 
   99    if (result == m_data.end() || (result->value.isEmpty() && !charset.
isEmpty())) {
 
  123    } 
else if (!charset.
isEmpty()) {
 
 
  137    return ct.
compare(
"text/html") == 0 || ct.
compare(
"application/xhtml+xml") == 0 ||
 
  138           ct.
compare(
"application/vnd.wap.xhtml+xml") == 0;
 
 
  144    return ct.
compare(
"application/xhtml+xml") == 0 ||
 
  145           ct.
compare(
"application/vnd.wap.xhtml+xml") == 0;
 
 
  156    auto value = 
header(
"Content-Type");
 
  157    if (!value.isEmpty()) {
 
  158        return value.compare(
"application/json") == 0;
 
 
  165    auto value = 
header(
"Content-Length");
 
  166    if (!value.isEmpty()) {
 
  167        return value.toLongLong();
 
 
  190    auto value = 
header(
"Date");
 
  191    if (!value.isEmpty()) {
 
  192        if (value.endsWith(
" GMT")) {
 
  194                                          QStringLiteral(
"ddd, dd MMM yyyy hh:mm:ss"));
 
  197                                          QStringLiteral(
"ddd, dd MMM yyyy hh:mm:ss"));
 
 
  207    return header(
"If-Modified-Since");
 
 
  213    auto value = 
header(
"If-Modified-Since");
 
  214    if (!value.isEmpty()) {
 
  215        if (value.endsWith(
" GMT")) {
 
  217                                          QStringLiteral(
"ddd, dd MMM yyyy hh:mm:ss"));
 
  220                                          QStringLiteral(
"ddd, dd MMM yyyy hh:mm:ss"));
 
 
  230    auto value = 
header(
"If-Modified-Since");
 
  231    if (!value.isEmpty()) {
 
 
  241    auto value = 
header(
"If-Match");
 
  242    if (!value.isEmpty()) {
 
  244        return clientETag.sliced(1, clientETag.size() - 2) == etag ||
 
  245               clientETag.
sliced(3, clientETag.size() - 4) == etag; 
 
 
  252    auto value = 
header(
"If-None-Match");
 
  253    if (!value.isEmpty()) {
 
  255        return clientETag.sliced(1, clientETag.size() - 2) == etag ||
 
  256               clientETag.
sliced(3, clientETag.size() - 4) == etag; 
 
 
  268    return header(
"Last-Modified");
 
 
  297    return header(
"Connection");
 
 
  307    return header(
"User-Agent");
 
 
  317    int fragmentPos = uri.
indexOf(
'#');
 
  318    if (fragmentPos != -1) {
 
 
  328    setHeader(
"Www-Authenticate"_qba, value);
 
 
  333    setHeader(
"Proxy-Authenticate"_qba, value);
 
 
  338    return header(
"Authorization");
 
 
  345    int pos   = auth.indexOf(
"Bearer ");
 
  348        ret = auth.
mid(pos, auth.indexOf(
',', pos) - pos);
 
 
  367        qCWarning(CUTELYST_CORE) << 
"Headers::Basic authorization user name can't contain ':'";
 
  371    const QString result = username + u
':' + password;
 
 
  379    return header(
"Proxy-Authorization");
 
 
  394    if (
auto result = findHeaderConst(m_data, key); result != m_data.end()) {
 
  395        return result->value;
 
 
  407    if (
auto result = findHeaderConst(m_data, key); result != m_data.end()) {
 
  408        return result->value;
 
 
  421    for (
auto result = findHeaderConst(m_data, key); result != m_data.end(); ++result) {
 
  422        ret.
append(result->value);
 
 
  430    for (
auto result = findHeaderConst(m_data, key); result != m_data.end(); ++result) {
 
 
  442    if (
auto result = std::find_if(m_data.begin(), m_data.end(), matchKey);
 
  443        result != m_data.end()) {
 
  444        result->value = value;
 
  447        m_data.erase(std::remove_if(result, m_data.end(), matchKey), m_data.end());
 
 
  460    m_data.push_back({key, value});
 
 
  465    m_data.push_back({key, values.
join(
", ")});
 
 
  476    auto result = findHeaderConst(m_data, key);
 
  477    return result != m_data.end();
 
 
  484    for (
const auto &
header : m_data) {
 
  486        for (
const auto &key : ret) {
 
  508    const auto otherData = other.data();
 
  509    if (m_data.size() != otherData.size()) {
 
  513    for (
const auto &myValue : m_data) {
 
  514        if (!other.data().contains(myValue)) {
 
 
  525    int pos = auth.
indexOf(
"Basic ");
 
  528        ret = auth.
mid(pos, auth.
indexOf(
',', pos) - pos);
 
  537    const QByteArray authorization = decodeBasicAuth(auth);
 
  538    if (!authorization.
isEmpty()) {
 
  539        int pos = authorization.
indexOf(
':');
 
  552    const auto data       = headers.
data();
 
  555    for (
auto it = data.begin(); it != data.end(); ++it) {
 
  556        debug << 
'(' << it->key + 
'=' + it->value << 
')';
 
The Cutelyst namespace holds all public Cutelyst API.
 
QByteArray & append(QByteArrayView data)
 
int compare(QByteArrayView bv, Qt::CaseSensitivity cs) const const
 
bool endsWith(QByteArrayView bv) const const
 
QByteArray fromBase64(const QByteArray &base64, QByteArray::Base64Options options)
 
qsizetype indexOf(QByteArrayView bv, qsizetype from) const const
 
bool isEmpty() const const
 
qsizetype lastIndexOf(QByteArrayView bv) const const
 
QByteArray left(qsizetype len) const const
 
qsizetype length() const const
 
QByteArray mid(qsizetype pos, qsizetype len) const const
 
QByteArray number(double n, char format, int precision)
 
QByteArray & remove(qsizetype pos, qsizetype len)
 
QByteArray & replace(QByteArrayView before, QByteArrayView after)
 
QByteArray sliced(qsizetype pos) const const
 
bool startsWith(QByteArrayView bv) const const
 
QByteArray toBase64(QByteArray::Base64Options options) const const
 
QByteArray toLower() const const
 
QByteArray toUpper() const const
 
QByteArray trimmed() const const
 
QByteArray join(QByteArrayView separator) const const
 
int compare(QByteArrayView bv, Qt::CaseSensitivity cs) const const
 
void setTimeSpec(Qt::TimeSpec spec)
 
QDateTime toUTC() const const
 
bool autoInsertSpaces() const const
 
void setAutoInsertSpaces(bool b)
 
void append(QList::parameter_type value)
 
QDateTime toDateTime(const QString &string, QLocale::FormatType format) const const
 
QString toString(QDate date, QLocale::FormatType format) const const
 
bool contains(QChar ch, Qt::CaseSensitivity cs) const const
 
QString fromLatin1(QByteArrayView str)
 
QByteArray toLatin1() const const