kodi
Public Member Functions | Static Public Member Functions | List of all members
PLT_HttpServer Class Reference

The PLT_HttpServer class provides an asynchronous way to handle multiple HTTP requests concurrently. More...

#include <PltHttpServer.h>

Inheritance diagram for PLT_HttpServer:
Inheritance graph
[legend]
Collaboration diagram for PLT_HttpServer:
Collaboration graph
[legend]

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 ()
 
- Public Member Functions inherited from NPT_HttpRequestHandler
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.
 
- Public Member Functions inherited from NPT_HttpServer
 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 ConfigGetConfig () 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_HttpRequestHandlerFindRequestHandler (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

- Protected Member Functions inherited from NPT_HttpServer
NPT_Result Bind ()
 
- Protected Attributes inherited from NPT_HttpServer
NPT_TcpServerSocket m_Socket
 
NPT_UInt16 m_BoundPort
 
Config m_Config
 
NPT_List< HandlerConfig * > m_RequestHandlers
 
NPT_String m_ServerHeader
 
bool m_Run
 

Detailed Description

The PLT_HttpServer class provides an asynchronous way to handle multiple HTTP requests concurrently.

Pipelining requests and keep-alive connections are supported.


The documentation for this class was generated from the following files: