C++ Web Framework  3.0
httpreadrequest.h
1 /*
2  Copyright 2017 Herik Lima de Castro and Marcelo Medeiros Eler
3  Distributed under MIT license, or public domain if desired and
4  recognized in your jurisdiction.
5  See file LICENSE for detail.
6 */
7 
8 #ifndef HTTPREADREQUEST_H
9 #define HTTPREADREQUEST_H
10 
11 #include <QMap>
12 #include <QFile>
13 #include <chrono>
14 #include <QRunnable>
15 #include <QTcpSocket>
16 #include <QStringList>
17 #include <QSslConfiguration>
18 #include <memory>
19 #include "controller.h"
20 #include "request.h"
21 #include "response.h"
22 #include "session.h"
23 #include "filter.h"
24 #include "httpparser.h"
25 #include "constants.h"
26 #include "filterchain.h"
27 #include "qmapthreadsafety.h"
28 #include "cppwebframework_global.h"
29 
30 CWF_BEGIN_NAMESPACE
31 class Configuration;
36 class CPPWEBFRAMEWORKSHARED_EXPORT HttpReadRequest : public QRunnable
37 {
38  qintptr socketDescriptor;
41  const Configuration &configuration;
42  QSslConfiguration *ssl;
43  Filter *filter;
44  QTcpSocket *socket = nullptr;
45  qint64 maxUploadFile;
46  bool readBody(HttpParser &parser, Request &request, Response &response);
47  bool buildSslSocket();
48  void buildSocket();
49 public:
58  HttpReadRequest(qintptr socketDescriptor,
61  const Configuration &configuration,
62  QSslConfiguration *ssl,
63  Filter *filter);
64 
68  virtual ~HttpReadRequest();
72  void run() override;
73 };
74 
75 CWF_END_NAMESPACE
76 
77 #endif // HTTPREADREQUEST_H
The Request class holds all information about a http request.
Definition: request.h:27
The HttpReadRequest class is created automatically by the CppWebServer and inserted in a QThreadPoo...
Definition: httpreadrequest.h:36
The QMapThreadSafety class is a thread safe QMap.
Definition: qmapthreadsafety.h:23
The class parses a HTTP message.
Definition: httpparser.h:21
The Filter class works like a filter. You can use this class to validate sessions or measuring runtim...
Definition: filter.h:23
All classes of C++ Web Framework are contained within the namespace CWF.
Definition: configuration.h:24
The Response class is responsable to response a Http request.
Definition: response.h:25