kodi
|
The PLT_HttpServer class provides an asynchronous way to handle multiple HTTP requests concurrently. More...
#include <PltHttpServer.h>
Public Member Functions | |
PLT_HttpServer (NPT_IpAddress address=NPT_IpAddress::Any, NPT_IpPort port=0, bool allow_random_port_on_bind_failure=false, NPT_Cardinal max_clients=50, bool reuse_address=false) | |
NPT_Result | SetupResponse (NPT_HttpRequest &request, const NPT_HttpRequestContext &context, NPT_HttpResponse &response) override |
virtual NPT_Result | Start () |
virtual NPT_Result | Stop () |
virtual unsigned int | GetPort () |
![]() | |
virtual NPT_Result | SendResponseBody (const NPT_HttpRequestContext &context, NPT_HttpResponse &response, NPT_OutputStream &output) |
Override this method if you want to write the body yourself. More... | |
virtual void | Completed (NPT_Result) |
A notification method called by the server upon completing the processing of a request. | |
![]() | |
NPT_HttpServer (NPT_UInt16 listen_port=NPT_HTTP_DEFAULT_PORT, bool cancellable=false) | |
NPT_HttpServer (NPT_IpAddress listen_address, NPT_UInt16 listen_port=NPT_HTTP_DEFAULT_PORT, bool cancellable=false) | |
NPT_Result | SetConfig (const Config &config) |
const Config & | GetConfig () const |
NPT_Result | SetListenPort (NPT_UInt16 port, bool reuse_address=true) |
NPT_Result | SetTimeouts (NPT_Timeout connection_timeout, NPT_Timeout io_timeout) |
NPT_Result | SetServerHeader (const char *server_header) |
NPT_Result | Abort () |
NPT_Result | WaitForNewClient (NPT_InputStreamReference &input, NPT_OutputStreamReference &output, NPT_HttpRequestContext *context, NPT_Flags socket_flags=0) |
NPT_Result | Loop (bool cancellable_sockets=true) |
NPT_UInt16 | GetPort () |
void | Terminate () |
virtual NPT_Result | AddRequestHandler (NPT_HttpRequestHandler *handler, const char *path, bool include_children=false, bool transfer_ownership=false) |
Add a request handler. More... | |
virtual NPT_HttpRequestHandler * | FindRequestHandler (NPT_HttpRequest &request) |
virtual NPT_List< NPT_HttpRequestHandler * > | FindRequestHandlers (NPT_HttpRequest &request) |
virtual NPT_Result | RespondToClient (NPT_InputStreamReference &input, NPT_OutputStreamReference &output, const NPT_HttpRequestContext &context) |
Parse the request from a new client, form a response, and send it back. | |
Static Public Member Functions | |
static NPT_Result | ServeFile (const NPT_HttpRequest &request, const NPT_HttpRequestContext &context, NPT_HttpResponse &response, NPT_String file_path) |
static NPT_Result | ServeStream (const NPT_HttpRequest &request, const NPT_HttpRequestContext &context, NPT_HttpResponse &response, NPT_InputStreamReference &stream, const char *content_type) |
Additional Inherited Members | |
![]() | |
NPT_Result | Bind () |
![]() | |
NPT_TcpServerSocket | m_Socket |
NPT_UInt16 | m_BoundPort |
Config | m_Config |
NPT_List< HandlerConfig * > | m_RequestHandlers |
NPT_String | m_ServerHeader |
bool | m_Run |
The PLT_HttpServer class provides an asynchronous way to handle multiple HTTP requests concurrently.
Pipelining requests and keep-alive connections are supported.