24 #include <Cutelyst/Context> 25 #include <Cutelyst/Response> 27 #include <QtCore/QVariant> 28 #include <QtCore/QLoggingCategory> 44 return Component::OnlyExecute;
47 bool View::doExecute(
Context *c)
56 const QByteArray output =
render(c);
57 if (Q_UNLIKELY(c->
error())) {
58 const auto errors = c->
errors();
59 for (
const QString &error : errors) {
60 qCCritical(CUTELYST_VIEW) << error;
63 const QString acceptEncoding = c->req()->
header(QStringLiteral(
"ACCEPT_ENCODING"));
64 if (d->minimalSizeToDeflate >= 0 && output.count() > d->minimalSizeToDeflate &&
65 acceptEncoding.contains(
QLatin1String(
"deflate"), Qt::CaseInsensitive)) {
66 QByteArray compressedData = qCompress(output);
67 compressedData.remove(0, 6);
68 compressedData.chop(4);
70 response->
setBody(compressedData);
79 d->minimalSizeToDeflate = minSize;
81 #include "moc_view.cpp" void setName(const QString &name)
The Cutelyst Component base class.
void setMinimalSizeToDeflate(qint32 minSize=-1)
QStringList errors() const
Returns a list of errors that were defined.
Response * response() const
QString header(const QString &key) const
The Cutelyst namespace holds all public Cutelyst API.
virtual QByteArray render(Context *c) const =0
virtual Modifiers modifiers() const override
Cutelyst View abstract view component
View(QObject *parent, const QString &name)
void setBody(QIODevice *body)
bool error() const
Returns true if an error was set.