From 1ba50028d248a43d62bb17c86aaf85973c0116fa Mon Sep 17 00:00:00 2001 From: Mikhail Svetkin Date: Mon, 16 Jul 2018 16:45:46 +0200 Subject: Allow inherits from QAbstractHttpServer with custom private class Change-Id: I35ba1c7cf460d51beecad3427976f1e8a710aef0 Reviewed-by: Edward Welbourne --- src/httpserver/qabstracthttpserver.cpp | 6 +++++- src/httpserver/qabstracthttpserver.h | 2 ++ src/httpserver/qabstracthttpserver_p.h | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/httpserver/qabstracthttpserver.cpp b/src/httpserver/qabstracthttpserver.cpp index 608cb27..575845f 100644 --- a/src/httpserver/qabstracthttpserver.cpp +++ b/src/httpserver/qabstracthttpserver.cpp @@ -140,7 +140,11 @@ void QAbstractHttpServerPrivate::handleReadyRead() } QAbstractHttpServer::QAbstractHttpServer(QObject *parent) - : QObject(*new QAbstractHttpServerPrivate, parent) + : QAbstractHttpServer(*new QAbstractHttpServerPrivate, parent) +{} + +QAbstractHttpServer::QAbstractHttpServer(QAbstractHttpServerPrivate &dd, QObject *parent) + : QObject(dd, parent) { #if defined(QT_WEBSOCKETS_LIB) Q_D(QAbstractHttpServer); diff --git a/src/httpserver/qabstracthttpserver.h b/src/httpserver/qabstracthttpserver.h index 4eda6aa..6794489 100644 --- a/src/httpserver/qabstracthttpserver.h +++ b/src/httpserver/qabstracthttpserver.h @@ -78,6 +78,8 @@ public: #endif // defined(QT_WEBSOCKETS_LIB) protected: + QAbstractHttpServer(QAbstractHttpServerPrivate &dd, QObject *parent = nullptr); + virtual bool handleRequest(const QHttpServerRequest &request, QTcpSocket *socket) = 0; private: diff --git a/src/httpserver/qabstracthttpserver_p.h b/src/httpserver/qabstracthttpserver_p.h index a5beae0..559ee2f 100644 --- a/src/httpserver/qabstracthttpserver_p.h +++ b/src/httpserver/qabstracthttpserver_p.h @@ -51,6 +51,7 @@ // We mean it. #include +#include #include @@ -62,7 +63,7 @@ QT_BEGIN_NAMESPACE class QHttpServerRequest; -class QAbstractHttpServerPrivate: public QObjectPrivate +class Q_HTTPSERVER_EXPORT QAbstractHttpServerPrivate: public QObjectPrivate { Q_DECLARE_PUBLIC(QAbstractHttpServer) -- cgit v1.2.3