summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMikhail Svetkin <mikhail.svetkin@gmail.com>2019-07-21 12:16:19 +0200
committerMikhail Svetkin <mikhail.svetkin@gmail.com>2019-08-20 20:20:52 +0200
commit03f911fd0a4bb2768835fe16b9bef0893ccc25b9 (patch)
tree543f0a31618ed7e77765134d161983f2b6923479 /src
parent055d36692bccb0d2d639a178c8ffdc7e67782774 (diff)
QHttpServerResponse: Use rvalue more
Change-Id: I442245dc800a545142f3f28ea51a4465d6eaff84 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/httpserver/qhttpserverresponse.cpp34
-rw-r--r--src/httpserver/qhttpserverresponse.h16
2 files changed, 49 insertions, 1 deletions
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);