cutelyst  3.9.1
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
useragent.h
1 /*
2  * SPDX-FileCopyrightText: (C) 2019-2022 Daniel Nicoletti <dantti12@gmail.com>
3  * SPDX-License-Identifier: BSD-3-Clause
4  */
5 #ifndef C_USERAGENT_H
6 #define C_USERAGENT_H
7 
8 #include <Cutelyst/cutelyst_global.h>
9 
10 #include <QNetworkReply>
11 
12 class QIODevice;
13 class QJsonArray;
14 class QJsonObject;
15 class QJsonDocument;
16 class QHttpMultiPart;
17 class QNetworkRequest;
19 
20 namespace Cutelyst {
21 
22 class Context;
23 class Request;
24 
25 namespace UA {
26 
27 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkAccessManager *networkAccessManager();
28 
29 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *head(const QNetworkRequest &request);
30 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *get(const QNetworkRequest &request);
31 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *post(const QNetworkRequest &request,
32  QIODevice *data);
33 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *post(const QNetworkRequest &request,
34  const QByteArray &data);
35 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *put(const QNetworkRequest &request,
36  QIODevice *data);
37 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *put(const QNetworkRequest &request,
38  const QByteArray &data);
39 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *deleteResource(const QNetworkRequest &request);
40 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *sendCustomRequest(const QNetworkRequest &request,
41  const QByteArray &verb,
42  QIODevice *data = nullptr);
43 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *sendCustomRequest(const QNetworkRequest &request,
44  const QByteArray &verb,
45  const QByteArray &data);
46 
47 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *post(const QNetworkRequest &request,
48  QHttpMultiPart *multiPart);
49 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *put(const QNetworkRequest &request,
50  QHttpMultiPart *multiPart);
51 // On Qt < 5.8 it returns nullptr
52 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *sendCustomRequest(const QNetworkRequest &request,
53  const QByteArray &verb,
54  QHttpMultiPart *multiPart);
55 
56 // These methods set the Content-Type header to 'application/json'
57 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *postJson(const QNetworkRequest &request,
58  const QJsonDocument &doc);
59 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *putJson(const QNetworkRequest &request,
60  const QJsonDocument &doc);
61 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *
62  sendCustomRequestJson(const QNetworkRequest &request,
63  const QByteArray &verb,
64  const QJsonDocument &doc);
65 
66 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *postJsonObject(const QNetworkRequest &request,
67  const QJsonObject &obj);
68 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *putJsonObject(const QNetworkRequest &request,
69  const QJsonObject &obj);
70 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *
71  sendCustomRequestJsonObject(const QNetworkRequest &request,
72  const QByteArray &verb,
73  const QJsonObject &obj);
74 
75 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *postJsonArray(const QNetworkRequest &request,
76  const QJsonArray &obj);
77 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *putJsonArray(const QNetworkRequest &request,
78  const QJsonArray &obj);
79 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *
80  sendCustomRequestJsonArray(const QNetworkRequest &request,
81  const QByteArray &verb,
82  const QJsonArray &obj);
83 
88 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *forwardRequest(Request *request,
89  const QUrl &destination);
90 
97 CUTELYST_PLUGIN_USERAGENT_EXPORT QNetworkReply *forwardRequestResponse(Context *c,
98  const QUrl &destination);
99 
104 CUTELYST_PLUGIN_USERAGENT_EXPORT void forwardAsync(Context *c, const QUrl &destination);
105 } // namespace UA
106 
107 } // namespace Cutelyst
108 
109 #endif // C_USERAGENT_H
The Cutelyst namespace holds all public Cutelyst API.
Definition: Mainpage.dox:7