| 
									
										
										
										
											2017-08-23 18:47:07 +02:00
										 |  |  | /**
 | 
					
						
							|  |  |  |   @file | 
					
						
							|  |  |  |   @author Stefan Frings | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef HTTPREQUESTHANDLER_H
 | 
					
						
							|  |  |  | #define HTTPREQUESTHANDLER_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "httpglobal.h"
 | 
					
						
							|  |  |  | #include "httprequest.h"
 | 
					
						
							|  |  |  | #include "httpresponse.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-20 13:49:21 +01:00
										 |  |  | #include "export.h"
 | 
					
						
							| 
									
										
										
										
											2018-03-03 20:23:38 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-11 09:32:15 +01:00
										 |  |  | namespace qtwebapp { | 
					
						
							| 
									
										
										
										
											2017-08-23 18:47:07 +02: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 20:23:38 +01:00
										 |  |  | class HTTPSERVER_API HttpRequestHandler : public QObject { | 
					
						
							| 
									
										
										
										
											2017-08-23 18:47:07 +02: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
 |