5#ifndef CUTELYST_REQUEST_H
6#define CUTELYST_REQUEST_H
8#include <Cutelyst/cutelyst_global.h>
9#include <Cutelyst/headers.h>
10#include <Cutelyst/paramsmultimap.h>
12#include <QtCore/qobject.h>
13#include <QtCore/qstringlist.h>
29class CUTELYST_LIBRARY
Request final :
public QObject
32 Q_PROPERTY(QString hostname READ hostname CONSTANT)
33 Q_PROPERTY(quint16 port READ port CONSTANT)
34 Q_PROPERTY(QUrl uri READ uri CONSTANT)
35 Q_PROPERTY(QString base READ base CONSTANT)
36 Q_PROPERTY(QString path READ path CONSTANT)
37 Q_PROPERTY(QString match READ match CONSTANT)
38 Q_PROPERTY(QStringList arguments READ arguments CONSTANT)
39 Q_PROPERTY(QStringList args READ arguments CONSTANT)
40 Q_PROPERTY(
bool secure READ secure CONSTANT)
41 Q_PROPERTY(QVariant bodyData READ bodyData CONSTANT)
44 Q_PROPERTY(QString contentEncoding READ contentEncoding CONSTANT)
45 Q_PROPERTY(QString contentType READ contentType CONSTANT)
46 Q_PROPERTY(QString method READ method CONSTANT)
47 Q_PROPERTY(QString protocol READ protocol CONSTANT)
48 Q_PROPERTY(QString userAgent READ userAgent CONSTANT)
49 Q_PROPERTY(QString referer READ referer CONSTANT)
50 Q_PROPERTY(QString remoteUser READ remoteUser CONSTANT)
57 QHostAddress
address()
const noexcept;
77 QString hostname()
const;
106 QString path()
const noexcept;
113 QString match()
const noexcept;
119 void setMatch(
const QString &match);
137 QStringList arguments()
const noexcept;
148 inline QStringList args()
const;
153 QStringList
captures()
const noexcept;
168 bool secure()
const noexcept;
175 QIODevice *
body()
const;
190 QVariant bodyData()
const;
226 inline QString
bodyParameter(
const QString &key,
const QString &defaultValue = {})
const;
243 inline QString
bodyParam(
const QString &key,
const QString &defaultValue = {})
const;
250 inline QStringList bodyParams(
const QString &key)
const;
277 inline QString
queryParameter(
const QString &key,
const QString &defaultValue = {})
const;
295 inline QString
queryParam(
const QString &key,
const QString &defaultValue = {})
const;
302 inline QStringList queryParams(
const QString &key)
const;
307 inline QString contentEncoding()
const;
312 inline QString contentType()
const;
317 QString
cookie(
const QString &name)
const;
324 QStringList
cookies(
const QString &name)
const;
334 inline QString
header(
const QString &key)
const;
344 QString method()
const noexcept;
349 bool isPost()
const noexcept;
354 bool isGet()
const noexcept;
359 bool isHead()
const noexcept;
364 bool isPut()
const noexcept;
379 QString protocol()
const noexcept;
385 bool xhr()
const noexcept;
390 inline QString userAgent()
const;
395 inline QString referer()
const;
400 QString remoteUser()
const noexcept;
405 QVector<Upload *>
uploads()
const;
411 QMultiMap<QString, Upload *>
uploadsMap()
const;
516 RequestPrivate *d_ptr;
519 friend class Application;
520 friend class Dispatcher;
521 friend class DispatchType;
522 friend class Context;
526inline QStringList Request::args()
const
546inline QStringList Request::bodyParams(
const QString &key)
const
566inline QStringList Request::queryParams(
const QString &key)
const
571inline QString Request::contentEncoding()
const
576inline QString Request::contentType()
const
586inline QString Request::userAgent()
const
591inline QString Request::referer()
const
QMultiMap< QString, Upload * > uploadsMap() const
QVariantMap bodyParametersVariant() const
void webSocketBinaryMessage(const QByteArray &message, Cutelyst::Context *c)
Emitted when the websocket receives a binary message, this accounts for all binary frames till the la...
QVariantMap queryParametersVariant() const
QString queryParameter(const QString &key, const QString &defaultValue={}) const
QString addressString() const
void webSocketBinaryFrame(const QByteArray &message, bool isLastFrame, Cutelyst::Context *c)
Emitted when the websocket receives a binary frame, this is usefull for parsing big chunks of data wi...
bool isGet() const noexcept
QString queryKeywords() const
QString bodyParameter(const QString &key, const QString &defaultValue={}) const
QVector< Upload * > uploads() const
QString header(const QString &key) const
ParamsMultiMap bodyParameters() const
QJsonArray bodyJsonArray() const
bool xhr() const noexcept
QJsonObject bodyJsonObject() const
QStringList captures() const noexcept
bool isPut() const noexcept
bool isDelete() const noexcept
QUrl uriWith(const ParamsMultiMap &args, bool append=false) const
bool isPost() const noexcept
void webSocketTextFrame(const QString &message, bool isLastFrame, Cutelyst::Context *c)
Emitted when the websocket receives a text frame, this is usefull for parsing big chunks of data with...
void webSocketPong(const QByteArray &payload, Cutelyst::Context *c)
Emitted when the websocket receives a pong frame, which might include a payload.
void webSocketClosed(quint16 closeCode, const QString &reason)
Emitted when the websocket receives a close frame, including a close code and a reason,...
QJsonDocument bodyJsonDocument() const
ParamsMultiMap mangleParams(const ParamsMultiMap &args, bool append=false) const
void setCaptures(const QStringList &captures)
void webSocketTextMessage(const QString &message, Cutelyst::Context *c)
Emitted when the websocket receives a text message, this accounts for all text frames till the last o...
Headers headers() const noexcept
QStringList cookies(const QString &name) const
ParamsMultiMap queryParameters() const
QString queryParam(const QString &key, const QString &defaultValue={}) const
QString cookie(const QString &name) const
bool isPatch() const noexcept
Engine * engine() const noexcept
QString bodyParam(const QString &key, const QString &defaultValue={}) const
Request(EngineRequest *engineRequest)
bool isHead() const noexcept
void setArguments(const QStringList &arguments)
QHostAddress address() const noexcept
Upload * upload(const QString &name) const
void setMatch(const QString &match)
Cutelyst Upload handles file upload request
The Cutelyst namespace holds all public Cutelyst API.
QVector< Upload * > Uploads
QMultiMap< QString, QString > ParamsMultiMap