#include <httprequesthandler.h>
HttpRequestHandlers are attached to the HttpServer and process incoming HTTP requests.
When an Http request comes in, the HttpServer asks every attached HttpRequestHandler until the first one accepts the request. If the HttpRequestHandler accepts the request its HandleRequest() method will be called with a pointer to a content stream. The request handler is expected to write the response to the content stream (IMPORTANT: don't forget to set the MediaType on the stream!) and return with a HttpStatus code.
- Copyright
- (C) 2007 Radon Labs GmbH (C) 2013-2020 Individual contributors, see AUTHORS file
Inherits Core::RefCounted.
Inherited by Debug::ConsolePageHandler, Debug::CorePageHandler, Debug::DebugPageHandler, Debug::DisplayPageHandler, Debug::HelloWorldRequestHandler, Debug::IoPageHandler, Debug::MemoryPageHandler, Debug::MeshPageHandler, Debug::ShaderPageHandler, Debug::StringAtomPageHandler, Debug::SvgTestPageHandler, Debug::TexturePageHandler, Debug::ThreadPageHandler, and Http::DefaultHttpRequestHandler.
|
static void | DumpRefCountingLeaks () |
| dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!)
|
|
◆ HttpRequestHandler()
Http::HttpRequestHandler::HttpRequestHandler |
( |
| ) |
|
◆ ~HttpRequestHandler()
Http::HttpRequestHandler::~HttpRequestHandler |
( |
| ) |
|
|
virtual |
◆ __DeclareClass()
◆ GetDesc()
const Util::String & Http::HttpRequestHandler::GetDesc |
( |
| ) |
const |
|
inline |
get a human readable description of the request handler
◆ GetName()
const Util::String & Http::HttpRequestHandler::GetName |
( |
| ) |
const |
|
inline |
get a human readable name of the request handler
◆ GetRootLocation()
const Util::String & Http::HttpRequestHandler::GetRootLocation |
( |
| ) |
const |
|
inline |
get a resource location path which is accepted by the handler (e.g. "/display")
◆ HandlePendingRequests()
void Http::HttpRequestHandler::HandlePendingRequests |
( |
| ) |
|
|
protected |
handle all pending requests, called by local-thread's HttpServerProxy
Handle all pending http requests in the pending queue.
This method must be called frequently from the thread which created this request handler.
◆ HandleRequest()
void Http::HttpRequestHandler::HandleRequest |
( |
const Ptr< HttpRequest > & | request | ) |
|
|
protectedvirtual |
handle a http request, overwrite this method in you subclass
Overwrite this method in your subclass.
This method will be called by the HttpServer if AcceptsRequest() returned true. The request handler should properly process the request by filling the responseContentStream with data (for instance a HTML page), set the MediaType on the responseContentStream (for instance "text/html") and return with a HttpStatus code (usually HttpStatus::OK).
Reimplemented in Debug::ConsolePageHandler, Debug::CorePageHandler, Debug::DebugPageHandler, Debug::DisplayPageHandler, Debug::HelloWorldRequestHandler, Debug::IoPageHandler, Debug::MemoryPageHandler, Debug::MeshPageHandler, Debug::ShaderPageHandler, Debug::StringAtomPageHandler, Debug::SvgTestPageHandler, Debug::TexturePageHandler, Debug::ThreadPageHandler, and Http::DefaultHttpRequestHandler.
◆ PutRequest()
void Http::HttpRequestHandler::PutRequest |
( |
const Ptr< HttpRequest > & | httpRequest | ) |
|
|
protected |
put a request to the pending queue, called by HttpServer thread
Put a http request into the request handlers message queue.
This method is meant to be called from another thread.
◆ SetDesc()
void Http::HttpRequestHandler::SetDesc |
( |
const Util::String & | d | ) |
|
|
inlineprotected |
set human readable description
◆ SetName()
void Http::HttpRequestHandler::SetName |
( |
const Util::String & | n | ) |
|
|
inlineprotected |
set human readable name of the request handler
◆ SetRootLocation()
void Http::HttpRequestHandler::SetRootLocation |
( |
const Util::String & | l | ) |
|
|
inlineprotected |
set the root location of the request handler
◆ HttpServer
◆ HttpServerProxy
◆ curWorkRequests
◆ desc
◆ name
◆ pendingRequests
◆ rootLocation
The documentation for this class was generated from the following files: