From 84ea9833bb899d2439ea26796b454ef22c53c217 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Wed, 2 Jul 2014 14:30:40 -0700 Subject: [PATCH] Added forgotten sendCustomRequest Method + comments --- .../networking/src/NetworkAccessManager.cpp | 16 ++++++++++++++++ libraries/networking/src/NetworkAccessManager.h | 3 +++ 2 files changed, 19 insertions(+) diff --git a/libraries/networking/src/NetworkAccessManager.cpp b/libraries/networking/src/NetworkAccessManager.cpp index 7c45dc69d5..b9eda27947 100644 --- a/libraries/networking/src/NetworkAccessManager.cpp +++ b/libraries/networking/src/NetworkAccessManager.cpp @@ -131,3 +131,19 @@ QNetworkReply* NetworkAccessManager::put(const QNetworkRequest & request, const } return QNetworkAccessManager::put(request, data); } + + +QNetworkReply* NetworkAccessManager::sendCustomRequest(const QNetworkRequest& request, const QByteArray& verb, QIODevice* data) { + if (QThread::currentThread() != thread()) { + QNetworkReply* result; + QMetaObject::invokeMethod(this, + "sendCustomRequest", + Qt::BlockingQueuedConnection, + Q_RETURN_ARG(QNetworkReply*, result), + Q_ARG(const QNetworkRequest, request), + Q_ARG(const QByteArray, verb), + Q_ARG(QIODevice*, data)); + return result; + } + return QNetworkAccessManager::sendCustomRequest(request, verb, data); +} \ No newline at end of file diff --git a/libraries/networking/src/NetworkAccessManager.h b/libraries/networking/src/NetworkAccessManager.h index b1df269022..ba97f12552 100644 --- a/libraries/networking/src/NetworkAccessManager.h +++ b/libraries/networking/src/NetworkAccessManager.h @@ -17,6 +17,8 @@ #include /// Wrapper around QNetworkAccessManager wo that we only use one instance +/// For any other method you should need, make sure to be on the right thread +/// or call the method using QMetaObject::invokeMethod() class NetworkAccessManager : public QNetworkAccessManager { Q_OBJECT public: @@ -30,6 +32,7 @@ public: Q_INVOKABLE QNetworkReply* put(const QNetworkRequest& request, QIODevice* data); Q_INVOKABLE QNetworkReply* put(const QNetworkRequest& request, QHttpMultiPart* multiPart); Q_INVOKABLE QNetworkReply* put(const QNetworkRequest& request, const QByteArray& data); + Q_INVOKABLE QNetworkReply* sendCustomRequest(const QNetworkRequest& request, const QByteArray& verb, QIODevice* data = 0); private: NetworkAccessManager();