AusweisApp2/src/network/HttpServer.h

50 lines
986 B
C
Raw Normal View History

2017-07-03 09:33:28 +02:00
/*!
* \brief Provide a HTTP server.
*
2019-05-22 10:08:38 +02:00
* \copyright Copyright (c) 2016-2019 Governikus GmbH & Co. KG, Germany
2017-07-03 09:33:28 +02:00
*/
#pragma once
#include "HttpRequest.h"
2019-01-03 15:06:22 +01:00
#include "PortFile.h"
2017-07-03 09:33:28 +02:00
2019-01-03 15:06:22 +01:00
#include <QMetaMethod>
2017-07-03 09:33:28 +02:00
#include <QScopedPointer>
#include <QSharedPointer>
#include <QTcpServer>
namespace governikus
{
class HttpServer
: public QObject
{
Q_OBJECT
private:
QScopedPointer<QTcpServer, QScopedPointerDeleteLater> mServer;
2019-01-03 15:06:22 +01:00
PortFile mPortFile;
bool checkReceiver(const QMetaMethod& pSignal, HttpRequest* pRequest);
2017-07-03 09:33:28 +02:00
public:
static quint16 cPort;
2019-09-30 17:22:19 +02:00
explicit HttpServer(quint16 pPort = HttpServer::cPort);
2017-07-03 09:33:28 +02:00
virtual ~HttpServer();
bool isListening() const;
quint16 getServerPort() const;
private Q_SLOTS:
void onNewConnection();
2019-01-03 15:06:22 +01:00
void onMessageComplete(HttpRequest* pRequest);
2017-07-03 09:33:28 +02:00
Q_SIGNALS:
void fireNewHttpRequest(const QSharedPointer<HttpRequest>& pRequest);
2019-01-03 15:06:22 +01:00
void fireNewWebSocketRequest(const QSharedPointer<HttpRequest>& pRequest);
2017-07-03 09:33:28 +02:00
};
2019-01-03 15:06:22 +01:00
} // namespace governikus