diff options
author | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2018-03-31 20:29:02 +0900 |
---|---|---|
committer | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2018-03-31 20:29:56 +0900 |
commit | a62bc225b8b4c714e7943aad69d84704a03b8015 (patch) | |
tree | df5ff6f4cf878ecd74c14ea41a1d27a46055b415 /lib/jobs/requestdata.cpp | |
parent | 9d8900197e69e9c0ffaaff6f63a40cb80cf08fb1 (diff) | |
parent | 6a61d3a127db1e253821bfb2ebb7f433bd534c4a (diff) | |
download | libquotient-a62bc225b8b4c714e7943aad69d84704a03b8015.tar.gz libquotient-a62bc225b8b4c714e7943aad69d84704a03b8015.zip |
Merge branch 'kitsune-install-target'
Closes #113.
Diffstat (limited to 'lib/jobs/requestdata.cpp')
-rw-r--r-- | lib/jobs/requestdata.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/jobs/requestdata.cpp b/lib/jobs/requestdata.cpp new file mode 100644 index 00000000..5cb62221 --- /dev/null +++ b/lib/jobs/requestdata.cpp @@ -0,0 +1,38 @@ +#include "requestdata.h" + +#include <QtCore/QByteArray> +#include <QtCore/QJsonObject> +#include <QtCore/QJsonArray> +#include <QtCore/QJsonDocument> +#include <QtCore/QBuffer> + +using namespace QMatrixClient; + +auto fromData(const QByteArray& data) +{ + auto source = std::make_unique<QBuffer>(); + source->open(QIODevice::WriteOnly); + source->write(data); + source->close(); + return source; +} + +template <typename JsonDataT> +inline auto fromJson(const JsonDataT& jdata) +{ + return fromData(QJsonDocument(jdata).toJson(QJsonDocument::Compact)); +} + +RequestData::RequestData(const QByteArray& a) + : _source(fromData(a)) +{ } + +RequestData::RequestData(const QJsonObject& jo) + : _source(fromJson(jo)) +{ } + +RequestData::RequestData(const QJsonArray& ja) + : _source(fromJson(ja)) +{ } + +RequestData::~RequestData() = default; |