cutelyst 4.8.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
engine.h
1/*
2 * SPDX-FileCopyrightText: (C) 2013-2023 Daniel Nicoletti <dantti12@gmail.com>
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5#pragma once
6
7#include <Cutelyst/Headers>
8#include <Cutelyst/cutelyst_export.h>
9
10#include <QHostAddress>
11#include <QObject>
12
13namespace Cutelyst {
14
15class Application;
16class Context;
17class EngineRequest;
18class EnginePrivate;
19class CUTELYST_EXPORT Engine : public QObject
20{
22public:
28 explicit Engine(Application *app, int workerCore, const QVariantMap &opts);
32 virtual ~Engine();
33
37 [[nodiscard]] Application *app() const;
38
48 [[nodiscard]] virtual int workerId() const = 0;
49
57 [[nodiscard]] int workerCore() const;
58
66 [[nodiscard]] inline bool isZeroWorker() const;
67
71 [[nodiscard]] QVariantMap opts() const;
72
79 [[nodiscard]] QVariantMap config(const QString &entity) const;
80
84 void setConfig(const QVariantMap &config);
85
89 [[nodiscard]] static QVariantMap loadIniConfig(const QString &filename);
90
94 [[nodiscard]] static QVariantMap loadJsonConfig(const QString &filename);
95
101 void processRequest(EngineRequest *request);
102
107 Q_DECL_DEPRECATED_X("Will be removed in new major release")
108 static const char *httpStatusMessage(quint16 status, int *len = nullptr);
109
119
120protected:
125 bool initApplication();
126
137 bool postForkApplication();
138
142 [[nodiscard]] Headers &defaultHeaders();
143
144 EnginePrivate *d_ptr;
145
146private:
147 Q_DECLARE_PRIVATE(Engine)
148 friend class Application;
149 friend class Response;
150
154 virtual bool init() = 0;
155};
156
157inline bool Engine::isZeroWorker() const
158{
159 return !workerId() && !workerCore();
160}
161
162} // namespace Cutelyst
The Cutelyst application.
Definition application.h:66
The Cutelyst Context.
Definition context.h:42
static QVariantMap loadJsonConfig(const QString &filename)
Definition engine.cpp:299
Engine(Application *app, int workerCore, const QVariantMap &opts)
Definition engine.cpp:42
bool initApplication()
Definition engine.cpp:73
int workerCore() const
Definition engine.cpp:67
virtual int workerId() const =0
bool postForkApplication()
Definition engine.cpp:90
bool isZeroWorker() const
Definition engine.h:157
void setConfig(const QVariantMap &config)
Definition engine.cpp:269
void processRequestAsync(Cutelyst::EngineRequest *request)
static const char * httpStatusMessage(quint16 status, int *len=nullptr)
Definition engine.cpp:104
void processRequest(EngineRequest *request)
Definition engine.cpp:251
QVariantMap opts() const
Definition engine.cpp:257
QVariantMap config(const QString &entity) const
Definition engine.cpp:263
Application * app() const
Definition engine.cpp:60
Headers & defaultHeaders()
Definition engine.cpp:245
static QVariantMap loadIniConfig(const QString &filename)
Definition engine.cpp:275
Container for HTTP headers.
Definition headers.h:24
The Cutelyst namespace holds all public Cutelyst API.
QObject(QObject *parent)
Q_OBJECTQ_OBJECT
Q_SIGNALSQ_SIGNALS