7#include <Cutelyst/cutelyst_global.h>
9#include <QtCore/QDateTime>
10#include <QtCore/QMetaType>
11#include <QtCore/QVariant>
24 return (key.compare(other.key, Qt::CaseInsensitive) == 0) && value == other.value;
41 inline
Headers(std::initializer_list<std::pair<QByteArray, QByteArray>> list)
43 for (std::initializer_list<std::pair<QByteArray, QByteArray>>::const_iterator it =
55 [[nodiscard]] QByteArray contentDisposition() const noexcept;
60 void setCacheControl(const QByteArray &value);
66 void setContentDisposition(const QByteArray &contentDisposition);
73 void setContentDispositionAttachment(const QByteArray &filename = {});
80 [[nodiscard]] QByteArray contentEncoding() const noexcept;
86 void setContentEncoding(const QByteArray &encoding);
94 [[nodiscard]] QByteArray contentType() const;
100 void setContentType(const QByteArray &contentType);
105 [[nodiscard]] QByteArray contentTypeCharset() const;
111 void setContentTypeCharset(const QByteArray &charset);
116 [[nodiscard]]
bool contentIsText() const;
122 [[nodiscard]]
bool contentIsHtml() const;
127 [[nodiscard]]
bool contentIsXHtml() const;
132 [[nodiscard]]
bool contentIsXml() const;
137 [[nodiscard]]
bool contentIsJson() const;
142 [[nodiscard]] qint64 contentLength() const;
147 void setContentLength(qint64 value);
152 QByteArray setDateWithDateTime(const QDateTime &date);
157 [[nodiscard]] QDateTime date() const;
164 [[nodiscard]] QByteArray ifModifiedSince() const noexcept;
173 [[nodiscard]] QDateTime ifModifiedSinceDateTime() const;
179 [[nodiscard]]
bool ifModifiedSince(const QDateTime &lastModified) const;
190 [[nodiscard]]
bool ifMatch(const QByteArray &etag) const;
200 [[nodiscard]]
bool ifNoneMatch(const QByteArray &etag) const;
207 void setETag(const QByteArray &etag);
212 [[nodiscard]] QByteArray lastModified() const noexcept;
217 void setLastModified(const QByteArray &value);
223 QString setLastModified(const QDateTime &lastModified);
229 [[nodiscard]] QByteArray server() const noexcept;
235 void setServer(const QByteArray &value);
241 [[nodiscard]] QByteArray connection() const noexcept;
248 [[nodiscard]] QByteArray host() const noexcept;
254 [[nodiscard]] QByteArray userAgent() const noexcept;
260 [[nodiscard]] QByteArray referer() const noexcept;
268 void setReferer(const QByteArray &value);
275 void setWwwAuthenticate(const QByteArray &value);
280 void setProxyAuthenticate(const QByteArray &value);
285 [[nodiscard]] QByteArray authorization() const noexcept;
290 [[nodiscard]] QByteArray authorizationBearer() const;
297 [[nodiscard]] QByteArray authorizationBasic() const;
309 [[nodiscard]]
Authorization authorizationBasicObject()
const;
316 QByteArray setAuthorizationBasic(
const QString &username,
const QString &password);
322 [[nodiscard]] QByteArray proxyAuthorization() const noexcept;
329 [[nodiscard]] QByteArray proxyAuthorizationBasic() const;
336 [[nodiscard]]
Authorization proxyAuthorizationBasicObject() const;
341 [[nodiscard]] QByteArray header(QByteArrayView key) const noexcept;
347 [[nodiscard]] QString headerAsString(QByteArrayView key) const;
352 [[nodiscard]] QByteArray header(QByteArrayView key,
353 const QByteArray &defaultValue) const noexcept;
359 [[nodiscard]] QString headerAsString(QByteArrayView key, const QByteArray &defaultValue) const;
364 [[nodiscard]] QByteArrayList headers(QByteArrayView key) const;
370 [[nodiscard]] QStringList headersAsStrings(QByteArrayView key) const;
375 void setHeader(const QByteArray &key, const QByteArray &value);
380 void setHeader(const QByteArray &field, const QByteArrayList &values);
385 void pushHeader(const QByteArray &key, const QByteArray &value);
390 void pushHeader(const QByteArray &key, const QByteArrayList &values);
395 void removeHeader(QByteArrayView key);
400 inline
void clear() { m_data.clear(); }
405 [[nodiscard]]
inline QVector<HeaderKeyValue>
data()
const {
return m_data; }
410 [[nodiscard]]
bool contains(QByteArrayView key)
const noexcept;
412 [[nodiscard]] QByteArrayList keys()
const;
417 QByteArray operator[](QByteArrayView key)
const noexcept;
424 m_data = other.m_data;
431 bool operator==(
const Headers &other)
const noexcept;
434 QVector<HeaderKeyValue> m_data;
The Cutelyst namespace holds all public Cutelyst API.