16 #ifndef hifi_HTTPManager_h
17 #define hifi_HTTPManager_h
19 #include <QtNetwork/QTcpServer>
20 #include <QtCore/QTimer>
23 class HTTPSConnection;
25 class HTTPRequestHandler {
28 virtual bool handleHTTPRequest(
HTTPConnection* connection,
const QUrl& url,
bool skipSubHandler =
false) = 0;
32 class HTTPManager :
public QTcpServer,
public HTTPRequestHandler {
36 HTTPManager(
const QHostAddress& listenAddress, quint16 port,
const QString& documentRoot, HTTPRequestHandler* requestHandler =
nullptr);
38 bool handleHTTPRequest(
HTTPConnection* connection,
const QUrl& url,
bool skipSubHandler =
false)
override;
41 void isTcpServerListening();
42 void queuedExit(QString errorMessage);
50 virtual bool requestHandledByRequestHandler(
HTTPConnection* connection,
const QUrl& url);
52 QHostAddress _listenAddress;
53 QString _documentRoot;
54 HTTPRequestHandler* _requestHandler;
55 QTimer* _isListeningTimer;
Handles a single HTTP connection.
Definition: HTTPConnection.h:43
Handles HTTP connections.
Definition: HTTPManager.h:32
HTTPManager(const QHostAddress &listenAddress, quint16 port, const QString &documentRoot, HTTPRequestHandler *requestHandler=nullptr)
Initializes the manager.
Definition: HTTPManager.cpp:27
virtual void incomingConnection(qintptr socketDescriptor) override
Accepts all pending connections.
Definition: HTTPManager.cpp:40