cutelyst 4.0.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
server.h
1/*
2 * SPDX-FileCopyrightText: (C) 2016-2023 Daniel Nicoletti <dantti12@gmail.com>
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5#pragma once
6
7#include <Cutelyst/cutelyst_global.h>
8
9#include <QObject>
10
11class QCoreApplication;
12
13namespace Cutelyst {
14
15class Application;
16class ServerPrivate;
21class CUTELYST_SERVER_EXPORT Server : public QObject
22{
23 Q_OBJECT
24 Q_DECLARE_PRIVATE(Server)
25public:
34 explicit Server(QObject *parent = nullptr);
35 virtual ~Server();
36
37 void parseCommandLine(const QStringList &args);
38
57 int exec(Cutelyst::Application *app = nullptr);
58
74 bool start(Cutelyst::Application *app = nullptr);
75
80 void stop();
81
87 Q_PROPERTY(QString application READ application WRITE setApplication NOTIFY changed)
88 void setApplication(const QString &application);
89 [[nodiscard]] QString application() const;
90
103 Q_PROPERTY(QString threads READ threads WRITE setThreads NOTIFY changed)
104 void setThreads(const QString &threads);
105 [[nodiscard]] QString threads() const;
106
112 Q_PROPERTY(QString processes READ processes WRITE setProcesses NOTIFY changed)
113 void setProcesses(const QString &process);
114 [[nodiscard]] QString processes() const;
115
120 Q_PROPERTY(QString chdir READ chdir WRITE setChdir NOTIFY changed)
121 void setChdir(const QString &chdir);
122 [[nodiscard]] QString chdir() const;
123
128 Q_PROPERTY(QStringList http_socket READ httpSocket WRITE setHttpSocket NOTIFY changed)
129 void setHttpSocket(const QStringList &httpSocket);
130 [[nodiscard]] QStringList httpSocket() const;
131
136 Q_PROPERTY(QStringList http2_socket READ http2Socket WRITE setHttp2Socket NOTIFY changed)
137 void setHttp2Socket(const QStringList &http2Socket);
138 [[nodiscard]] QStringList http2Socket() const;
139
144 Q_PROPERTY(quint32 http2_header_table_size READ http2HeaderTableSize WRITE
145 setHttp2HeaderTableSize NOTIFY changed)
146 void setHttp2HeaderTableSize(quint32 headerTableSize);
147 [[nodiscard]] quint32 http2HeaderTableSize() const;
148
154 Q_PROPERTY(bool upgrade_h2c READ upgradeH2c WRITE setUpgradeH2c NOTIFY changed)
155 void setUpgradeH2c(bool enable);
156 [[nodiscard]] bool upgradeH2c() const;
157
163 Q_PROPERTY(bool https_h2 READ httpsH2 WRITE setHttpsH2 NOTIFY changed)
164 void setHttpsH2(bool enable);
165 [[nodiscard]] bool httpsH2() const;
166
171 Q_PROPERTY(QStringList https_socket READ httpsSocket WRITE setHttpsSocket NOTIFY changed)
172 void setHttpsSocket(const QStringList &httpsSocket);
173 [[nodiscard]] QStringList httpsSocket() const;
174
179 Q_PROPERTY(QStringList fastcgi_socket READ fastcgiSocket WRITE setFastcgiSocket NOTIFY changed)
180 void setFastcgiSocket(const QStringList &fastcgiSocket);
181 [[nodiscard]] QStringList fastcgiSocket() const;
182
187 Q_PROPERTY(QString socket_access READ socketAccess WRITE setSocketAccess NOTIFY changed)
188 void setSocketAccess(const QString &socketAccess);
189 [[nodiscard]] QString socketAccess() const;
190
195 Q_PROPERTY(int socket_timeout READ socketTimeout WRITE setSocketTimeout NOTIFY changed)
196 void setSocketTimeout(int timeout);
197 [[nodiscard]] int socketTimeout() const;
198
203 Q_PROPERTY(QString chdir2 READ chdir2 WRITE setChdir2 NOTIFY changed)
204 void setChdir2(const QString &chdir2);
205 [[nodiscard]] QString chdir2() const;
206
211 Q_PROPERTY(QStringList ini READ ini WRITE setIni NOTIFY changed)
212 void setIni(const QStringList &files);
213 [[nodiscard]] QStringList ini() const;
214
219 Q_PROPERTY(QStringList json READ json WRITE setJson NOTIFY changed)
220 void setJson(const QStringList &files);
221 [[nodiscard]] QStringList json() const;
222
227 Q_PROPERTY(QStringList static_map READ staticMap WRITE setStaticMap NOTIFY changed)
228 void setStaticMap(const QStringList &staticMap);
229 [[nodiscard]] QStringList staticMap() const;
230
236 Q_PROPERTY(QStringList static_map2 READ staticMap2 WRITE setStaticMap2 NOTIFY changed)
237 void setStaticMap2(const QStringList &staticMap);
238 [[nodiscard]] QStringList staticMap2() const;
239
245 Q_PROPERTY(bool master READ master WRITE setMaster NOTIFY changed)
246 void setMaster(bool enable);
247 [[nodiscard]] bool master() const;
248
253 Q_PROPERTY(bool auto_reload READ autoReload WRITE setAutoReload NOTIFY changed)
254 void setAutoReload(bool enable);
255 [[nodiscard]] bool autoReload() const;
256
261 Q_PROPERTY(QStringList touch_reload READ touchReload WRITE setTouchReload NOTIFY changed)
262 void setTouchReload(const QStringList &files);
263 [[nodiscard]] QStringList touchReload() const;
264
271 Q_PROPERTY(int listen READ listenQueue WRITE setListenQueue NOTIFY changed)
272 void setListenQueue(int size);
273 [[nodiscard]] int listenQueue() const;
274
279 Q_PROPERTY(int buffer_size READ bufferSize WRITE setBufferSize NOTIFY changed)
280 void setBufferSize(int size);
281 [[nodiscard]] int bufferSize() const;
282
288 Q_PROPERTY(qint64 post_buffering READ postBuffering WRITE setPostBuffering NOTIFY changed)
289 void setPostBuffering(qint64 size);
290 [[nodiscard]] qint64 postBuffering() const;
291
296 Q_PROPERTY(qint64 post_buffering_bufsize READ postBufferingBufsize WRITE setPostBufferingBufsize
297 NOTIFY changed)
298 void setPostBufferingBufsize(qint64 size);
299 [[nodiscard]] qint64 postBufferingBufsize() const;
300
305 Q_PROPERTY(bool tcp_nodelay READ tcpNodelay WRITE setTcpNodelay NOTIFY changed)
306 void setTcpNodelay(bool enable);
307 [[nodiscard]] bool tcpNodelay() const;
308
313 Q_PROPERTY(bool so_keepalive READ soKeepalive WRITE setSoKeepalive NOTIFY changed)
314 void setSoKeepalive(bool enable);
315 [[nodiscard]] bool soKeepalive() const;
316
322 Q_PROPERTY(int socket_sndbuf READ socketSndbuf WRITE setSocketSndbuf NOTIFY changed)
323 void setSocketSndbuf(int value);
324 [[nodiscard]] int socketSndbuf() const;
325
331 Q_PROPERTY(int socket_rcvbuf READ socketRcvbuf WRITE setSocketRcvbuf NOTIFY changed)
332 void setSocketRcvbuf(int value);
333 [[nodiscard]] int socketRcvbuf() const;
334
339 Q_PROPERTY(
340 int websocket_max_size READ websocketMaxSize WRITE setWebsocketMaxSize NOTIFY changed)
341 void setWebsocketMaxSize(int value);
342 [[nodiscard]] int websocketMaxSize() const;
343
348 Q_PROPERTY(QString pidfile READ pidfile WRITE setPidfile NOTIFY changed)
349 void setPidfile(const QString &file);
350 [[nodiscard]] QString pidfile() const;
351
356 Q_PROPERTY(QString pidfile2 READ pidfile2 WRITE setPidfile2 NOTIFY changed)
357 void setPidfile2(const QString &file);
358 [[nodiscard]] QString pidfile2() const;
359
365 Q_PROPERTY(QString uid READ uid WRITE setUid NOTIFY changed)
366 void setUid(const QString &uid);
367 [[nodiscard]] QString uid() const;
368
374 Q_PROPERTY(QString gid READ gid WRITE setGid NOTIFY changed)
375 void setGid(const QString &gid);
376 [[nodiscard]] QString gid() const;
377
383 Q_PROPERTY(bool no_initgroups READ noInitgroups WRITE setNoInitgroups NOTIFY changed)
384 void setNoInitgroups(bool enable);
385 [[nodiscard]] bool noInitgroups() const;
386
392 Q_PROPERTY(QString chown_socket READ chownSocket WRITE setChownSocket NOTIFY changed)
393 void setChownSocket(const QString &chownSocket);
394 [[nodiscard]] QString chownSocket() const;
395
401 Q_PROPERTY(QString umask READ umask WRITE setUmask NOTIFY changed)
402 void setUmask(const QString &value);
403 [[nodiscard]] QString umask() const;
404
410 Q_PROPERTY(int cpu_affinity READ cpuAffinity WRITE setCpuAffinity NOTIFY changed)
411 void setCpuAffinity(int value);
412 [[nodiscard]] int cpuAffinity() const;
413
419 Q_PROPERTY(bool reuse_port READ reusePort WRITE setReusePort NOTIFY changed)
420 void setReusePort(bool enable);
421 [[nodiscard]] bool reusePort() const;
422
427 Q_PROPERTY(bool lazy READ lazy WRITE setLazy NOTIFY changed)
428 void setLazy(bool enable);
429 [[nodiscard]] bool lazy() const;
430
437 Q_PROPERTY(bool using_frontend_proxy READ usingFrontendProxy WRITE setUsingFrontendProxy NOTIFY
438 changed)
439 void setUsingFrontendProxy(bool enable);
440 [[nodiscard]] bool usingFrontendProxy() const;
441
442Q_SIGNALS:
446 void ready();
447
451 void stopped();
452
453 void changed();
454
458 void errorOccured(const QString &error);
459
460protected:
461 ServerPrivate *d_ptr;
462};
463
464} // namespace Cutelyst
The Cutelyst Application.
Definition: application.h:43
void errorOccured(const QString &error)
bool start(Cutelyst::Application *app=nullptr)
This function will start the Cutelyst::Server in user application mode.
Server(QObject *parent=nullptr)
Server.
int exec(Cutelyst::Application *app=nullptr)
The Cutelyst namespace holds all public Cutelyst API.
Definition: Mainpage.dox:8