5#include "application.h"
10#include "response_p.h"
14#include <QJsonDocument>
43 : d_ptr(new EnginePrivate)
77 if (thread() != QThread::currentThread()) {
78 qCCritical(CUTELYST_ENGINE) <<
"Cannot init application on a different thread";
82 if (!d->app->setup(
this)) {
83 qCCritical(CUTELYST_ENGINE) <<
"Failed to setup application";
95 qCCritical(CUTELYST_ENGINE) <<
"Failed to postForkApplication on a null application";
99 QThread::currentThread()->setObjectName(QString::number(d->workerCore));
101 return d->app->enginePostFork();
107 return d->app->defaultHeaders();
113 d->app->handleRequest(request);
125 return d->config.value(entity).toMap();
137 QSettings settings(filename, QSettings::IniFormat);
138 if (settings.status() != QSettings::NoError) {
139 qCWarning(CUTELYST_ENGINE) <<
"Failed to load INI file:" << settings.status();
143 const auto groups = settings.childGroups();
144 for (
const QString &group : groups) {
145 QVariantMap configGroup;
146 settings.beginGroup(group);
147 const auto child = settings.childKeys();
148 for (
const QString &key : child) {
149 configGroup.insert(key, settings.value(key));
152 ret.insert(group, configGroup);
161 QFile file(filename);
162 if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
165 QJsonDocument doc = QJsonDocument::fromJson(file.readAll());
167 ret = doc.toVariant().toMap();
172#include "moc_engine.cpp"
The Cutelyst application.
static QVariantMap loadJsonConfig(const QString &filename)
Engine(Application *app, int workerCore, const QVariantMap &opts)
bool postForkApplication()
void setConfig(const QVariantMap &config)
void processRequestAsync(Cutelyst::EngineRequest *request)
void processRequest(EngineRequest *request)
QVariantMap config(const QString &entity) const
Application * app() const
Headers & defaultHeaders()
static QVariantMap loadIniConfig(const QString &filename)
The Cutelyst namespace holds all public Cutelyst API.