QtWebApp
stefanfrings::HttpListener Class Reference

Listens for incoming TCP connections and and passes all incoming HTTP requests to your implementation of HttpRequestHandler, which processes the request and generates the response (usually a HTML document). More...

#include <httplistener.h>

Inheritance diagram for stefanfrings::HttpListener:
Collaboration diagram for stefanfrings::HttpListener:

Signals

void handleConnection (tSocketDescriptor socketDescriptor)
 Sent to the connection handler to process a new incoming connection. More...
 

Public Member Functions

 HttpListener (const QSettings *settings, HttpRequestHandler *requestHandler, QObject *parent=nullptr)
 Constructor. More...
 
virtual ~HttpListener ()
 Destructor.
 
void listen ()
 Restart listeing after close().
 
void close ()
 Closes the listener, waits until all pending requests are processed, then closes the connection pool.
 

Protected Member Functions

void incomingConnection (tSocketDescriptor socketDescriptor)
 Serves new incoming connection requests.
 

Detailed Description

Listens for incoming TCP connections and and passes all incoming HTTP requests to your implementation of HttpRequestHandler, which processes the request and generates the response (usually a HTML document).

Example for the required settings in the config file:

;host=192.168.0.100
port=8080
minThreads=1
maxThreads=10
cleanupInterval=1000
readTimeout=60000
;sslKeyFile=ssl/my.key
;sslCertFile=ssl/my.cert
maxRequestSize=16000
maxMultiPartSize=1000000

The optional host parameter binds the listener to one network interface. The listener handles all network interfaces if no host is configured. The port number specifies the incoming TCP port that this listener listens to.

See also
HttpConnectionHandlerPool for description of config settings minThreads, maxThreads, cleanupInterval and ssl settings
HttpConnectionHandler for description of the readTimeout
HttpRequest for description of config settings maxRequestSize and maxMultiPartSize

Definition at line 44 of file httplistener.h.

Constructor & Destructor Documentation

◆ HttpListener()

HttpListener::HttpListener ( const QSettings *  settings,
HttpRequestHandler requestHandler,
QObject *  parent = nullptr 
)

Constructor.

Creates a connection pool and starts listening on the configured host and port.

Parameters
settingsConfiguration settings, usually stored in an INI file. Must not be 0. Settings are read from the current group, so the caller must have called settings->beginGroup(). Because the group must not change during runtime, it is recommended to provide a separate QSettings instance that is not used by other parts of the program. The HttpListener does not take over ownership of the QSettings instance, so the caller should destroy it during shutdown.
requestHandlerProcesses each received HTTP request, usually by dispatching to controller classes.
parentParent object.
Warning
Ensure to close or delete the listener before deleting the request handler.

Definition at line 13 of file httplistener.cpp.

Member Function Documentation

◆ handleConnection

void stefanfrings::HttpListener::handleConnection ( tSocketDescriptor  socketDescriptor)
signal

Sent to the connection handler to process a new incoming connection.

Parameters
socketDescriptorreferences the accepted connection.

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