2017-08-23 16:47:07 +00:00
|
|
|
/**
|
|
|
|
@file
|
|
|
|
@author Stefan Frings
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef HTTPREQUESTHANDLER_H
|
|
|
|
#define HTTPREQUESTHANDLER_H
|
|
|
|
|
|
|
|
#include "httpglobal.h"
|
|
|
|
#include "httprequest.h"
|
|
|
|
#include "httpresponse.h"
|
|
|
|
|
2018-03-20 12:49:21 +00:00
|
|
|
#include "export.h"
|
2018-03-03 19:23:38 +00:00
|
|
|
|
2017-11-11 08:32:15 +00:00
|
|
|
namespace qtwebapp {
|
2017-08-23 16:47:07 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
The request handler generates a response for each HTTP request. Web Applications
|
|
|
|
usually have one central request handler that maps incoming requests to several
|
|
|
|
controllers (servlets) based on the requested path.
|
|
|
|
<p>
|
|
|
|
You need to override the service() method or you will always get an HTTP error 501.
|
|
|
|
<p>
|
|
|
|
@warning Be aware that the main request handler instance must be created on the heap and
|
|
|
|
that it is used by multiple threads simultaneously.
|
|
|
|
@see StaticFileController which delivers static local files.
|
|
|
|
*/
|
|
|
|
|
2018-03-03 19:23:38 +00:00
|
|
|
class HTTPSERVER_API HttpRequestHandler : public QObject {
|
2017-08-23 16:47:07 +00:00
|
|
|
Q_OBJECT
|
|
|
|
Q_DISABLE_COPY(HttpRequestHandler)
|
|
|
|
public:
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Constructor.
|
|
|
|
* @param parent Parent object.
|
|
|
|
*/
|
|
|
|
HttpRequestHandler(QObject* parent=NULL);
|
|
|
|
|
|
|
|
/** Destructor */
|
|
|
|
virtual ~HttpRequestHandler();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Generate a response for an incoming HTTP request.
|
|
|
|
@param request The received HTTP request
|
|
|
|
@param response Must be used to return the response
|
|
|
|
@warning This method must be thread safe
|
|
|
|
*/
|
|
|
|
virtual void service(HttpRequest& request, HttpResponse& response);
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
} // end of namespace
|
|
|
|
|
|
|
|
#endif // HTTPREQUESTHANDLER_H
|