10 #include <Cutelyst/Context>
11 #include <Cutelyst/Response>
13 #include <QtCore/QVariant>
14 #include <QtCore/QLoggingCategory>
30 return Component::OnlyExecute;
33 bool View::doExecute(
Context *c)
42 const QByteArray output =
render(c);
43 if (Q_UNLIKELY(c->
error())) {
44 const auto errors = c->
errors();
45 for (
const QString &error : errors) {
46 qCCritical(CUTELYST_VIEW) << error;
49 const QString acceptEncoding = c->req()->
header(QStringLiteral(
"ACCEPT_ENCODING"));
50 if (d->minimalSizeToDeflate >= 0 && output.count() > d->minimalSizeToDeflate &&
51 acceptEncoding.contains(QLatin1String(
"deflate"), Qt::CaseInsensitive)) {
52 QByteArray compressedData = qCompress(output);
53 compressedData.remove(0, 6);
54 compressedData.chop(4);
56 response->
setBody(compressedData);
65 d->minimalSizeToDeflate = minSize;
67 #include "moc_view.cpp"
The Cutelyst Component base class.
void setName(const QString &name)
QStringList errors() const noexcept
Returns a list of errors that were defined.
bool error() const noexcept
Returns true if an error was set.
Response * response() const noexcept
QString header(const QString &key) const
bool hasBody() const noexcept
Headers & headers() noexcept
void setBody(QIODevice *body)
Cutelyst View abstract view component
virtual QByteArray render(Context *c) const =0
View(QObject *parent, const QString &name)
void setMinimalSizeToDeflate(qint32 minSize=-1)
virtual Modifiers modifiers() const override
The Cutelyst namespace holds all public Cutelyst API.