diff --git a/src/httpserver/qhttpserverresponse.cpp b/src/httpserver/qhttpserverresponse.cpp index 5941418..e997e96 100644 --- a/src/httpserver/qhttpserverresponse.cpp +++ b/src/httpserver/qhttpserverresponse.cpp @@ -56,7 +56,7 @@ QHttpServerResponse::QHttpServerResponse(const QHttpServerResponse::StatusCode s } QHttpServerResponse::QHttpServerResponse(const char *data) - : QHttpServerResponse(QByteArray(data)) + : QHttpServerResponse(QByteArray::fromRawData(data, qstrlen(data))) { } @@ -70,6 +70,13 @@ QHttpServerResponse::QHttpServerResponse(const QByteArray &data) { } +QHttpServerResponse::QHttpServerResponse(QByteArray &&data) + : QHttpServerResponse( + QMimeDatabase().mimeTypeForData(data).name().toLocal8Bit(), + std::move(data)) +{ +} + QHttpServerResponse::QHttpServerResponse(const QJsonObject &data) : QHttpServerResponse(mimeApplicationJson, QJsonDocument(data).toJson(QJsonDocument::Compact)) @@ -89,6 +96,31 @@ QHttpServerResponse::QHttpServerResponse(const QByteArray &mimeType, { } +QHttpServerResponse::QHttpServerResponse(QByteArray &&mimeType, + const QByteArray &data, + const StatusCode status) + : QHttpServerResponse( + new QHttpServerResponsePrivate{std::move(mimeType), data, status}) +{ +} + +QHttpServerResponse::QHttpServerResponse(const QByteArray &mimeType, + QByteArray &&data, + const StatusCode status) + : QHttpServerResponse( + new QHttpServerResponsePrivate{mimeType, std::move(data), status}) +{ +} + +QHttpServerResponse::QHttpServerResponse(QByteArray &&mimeType, + QByteArray &&data, + const StatusCode status) + : QHttpServerResponse( + new QHttpServerResponsePrivate{std::move(mimeType), std::move(data), + status}) +{ +} + QHttpServerResponse::~QHttpServerResponse() { } diff --git a/src/httpserver/qhttpserverresponse.h b/src/httpserver/qhttpserverresponse.h index 030b8c4..73fa52d 100644 --- a/src/httpserver/qhttpserverresponse.h +++ b/src/httpserver/qhttpserverresponse.h @@ -54,14 +54,30 @@ public: QHttpServerResponse& operator=(QHttpServerResponse &&other) = delete; QHttpServerResponse(const StatusCode statusCode); + QHttpServerResponse(const char *data); + QHttpServerResponse(const QString &data); + explicit QHttpServerResponse(const QByteArray &data); + explicit QHttpServerResponse(QByteArray &&data); + QHttpServerResponse(const QJsonObject &data); QHttpServerResponse(const QJsonArray &data); + QHttpServerResponse(const QByteArray &mimeType, const QByteArray &data, const StatusCode status = StatusCode::Ok); + QHttpServerResponse(QByteArray &&mimeType, + const QByteArray &data, + const StatusCode status = StatusCode::Ok); + QHttpServerResponse(const QByteArray &mimeType, + QByteArray &&data, + const StatusCode status = StatusCode::Ok); + QHttpServerResponse(QByteArray &&mimeType, + QByteArray &&data, + const StatusCode status = StatusCode::Ok); + virtual ~QHttpServerResponse(); static QHttpServerResponse fromFile(const QString &fileName);