mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 17:49:27 +02:00
Merge pull request #3112 from Atlante45/replace_qnetworkaccessmanager
Replace QNetworkAccessManager by Wrapper
This commit is contained in:
commit
da87ac4105
33 changed files with 295 additions and 164 deletions
|
@ -13,13 +13,13 @@
|
||||||
#include <QtCore/QEventLoop>
|
#include <QtCore/QEventLoop>
|
||||||
#include <QtCore/QStandardPaths>
|
#include <QtCore/QStandardPaths>
|
||||||
#include <QtCore/QTimer>
|
#include <QtCore/QTimer>
|
||||||
#include <QtNetwork/QNetworkAccessManager>
|
|
||||||
#include <QtNetwork/QNetworkDiskCache>
|
#include <QtNetwork/QNetworkDiskCache>
|
||||||
#include <QtNetwork/QNetworkRequest>
|
#include <QtNetwork/QNetworkRequest>
|
||||||
#include <QtNetwork/QNetworkReply>
|
#include <QtNetwork/QNetworkReply>
|
||||||
|
|
||||||
#include <AudioRingBuffer.h>
|
#include <AudioRingBuffer.h>
|
||||||
#include <AvatarData.h>
|
#include <AvatarData.h>
|
||||||
|
#include <NetworkAccessManager.h>
|
||||||
#include <NodeList.h>
|
#include <NodeList.h>
|
||||||
#include <PacketHeaders.h>
|
#include <PacketHeaders.h>
|
||||||
#include <ResourceCache.h>
|
#include <ResourceCache.h>
|
||||||
|
@ -208,12 +208,14 @@ void Agent::run() {
|
||||||
scriptURL = QUrl(_payload);
|
scriptURL = QUrl(_payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkAccessManager *networkManager = new QNetworkAccessManager(this);
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
QNetworkReply *reply = networkManager->get(QNetworkRequest(scriptURL));
|
QNetworkReply *reply = networkAccessManager.get(QNetworkRequest(scriptURL));
|
||||||
QNetworkDiskCache* cache = new QNetworkDiskCache(networkManager);
|
QNetworkDiskCache* cache = new QNetworkDiskCache(&networkAccessManager);
|
||||||
QString cachePath = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
|
QString cachePath = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
|
||||||
cache->setCacheDirectory(!cachePath.isEmpty() ? cachePath : "agentCache");
|
cache->setCacheDirectory(!cachePath.isEmpty() ? cachePath : "agentCache");
|
||||||
networkManager->setCache(cache);
|
QMetaObject::invokeMethod(&networkAccessManager, "setCache",
|
||||||
|
Qt::BlockingQueuedConnection,
|
||||||
|
Q_ARG(QAbstractNetworkCache*, cache));
|
||||||
|
|
||||||
qDebug() << "Downloading script at" << scriptURL.toString();
|
qDebug() << "Downloading script at" << scriptURL.toString();
|
||||||
|
|
||||||
|
@ -222,10 +224,6 @@ void Agent::run() {
|
||||||
|
|
||||||
loop.exec();
|
loop.exec();
|
||||||
|
|
||||||
// let the AvatarData and ResourceCache classes use our QNetworkAccessManager
|
|
||||||
AvatarData::setNetworkAccessManager(networkManager);
|
|
||||||
ResourceCache::setNetworkAccessManager(networkManager);
|
|
||||||
|
|
||||||
QString scriptContents(reply->readAll());
|
QString scriptContents(reply->readAll());
|
||||||
|
|
||||||
qDebug() << "Downloaded script:" << scriptContents;
|
qDebug() << "Downloaded script:" << scriptContents;
|
||||||
|
|
|
@ -38,11 +38,11 @@
|
||||||
#include <QtCore/QJsonObject>
|
#include <QtCore/QJsonObject>
|
||||||
#include <QtCore/QJsonValue>
|
#include <QtCore/QJsonValue>
|
||||||
#include <QtCore/QTimer>
|
#include <QtCore/QTimer>
|
||||||
#include <QtNetwork/QNetworkAccessManager>
|
|
||||||
#include <QtNetwork/QNetworkRequest>
|
#include <QtNetwork/QNetworkRequest>
|
||||||
#include <QtNetwork/QNetworkReply>
|
#include <QtNetwork/QNetworkReply>
|
||||||
|
|
||||||
#include <Logging.h>
|
#include <Logging.h>
|
||||||
|
#include <NetworkAccessManager.h>
|
||||||
#include <NodeList.h>
|
#include <NodeList.h>
|
||||||
#include <Node.h>
|
#include <Node.h>
|
||||||
#include <PacketHeaders.h>
|
#include <PacketHeaders.h>
|
||||||
|
@ -482,8 +482,8 @@ void AudioMixer::run() {
|
||||||
|
|
||||||
nodeList->linkedDataCreateCallback = attachNewBufferToNode;
|
nodeList->linkedDataCreateCallback = attachNewBufferToNode;
|
||||||
|
|
||||||
// setup a QNetworkAccessManager to ask the domain-server for our settings
|
// setup a NetworkAccessManager to ask the domain-server for our settings
|
||||||
QNetworkAccessManager *networkManager = new QNetworkAccessManager(this);
|
NetworkAccessManager& networkManager = NetworkAccessManager::getInstance();
|
||||||
|
|
||||||
QUrl settingsJSONURL;
|
QUrl settingsJSONURL;
|
||||||
settingsJSONURL.setScheme("http");
|
settingsJSONURL.setScheme("http");
|
||||||
|
@ -500,7 +500,7 @@ void AudioMixer::run() {
|
||||||
qDebug() << "Requesting settings for assignment from domain-server at" << settingsJSONURL.toString();
|
qDebug() << "Requesting settings for assignment from domain-server at" << settingsJSONURL.toString();
|
||||||
|
|
||||||
while (!reply || reply->error() != QNetworkReply::NoError) {
|
while (!reply || reply->error() != QNetworkReply::NoError) {
|
||||||
reply = networkManager->get(QNetworkRequest(settingsJSONURL));
|
reply = networkManager.get(QNetworkRequest(settingsJSONURL));
|
||||||
|
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
|
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
#include <QNetworkAccessManager>
|
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QUuid>
|
#include <QUuid>
|
||||||
|
|
||||||
|
|
|
@ -51,8 +51,6 @@ DomainServer::DomainServer(int argc, char* argv[]) :
|
||||||
|
|
||||||
_argumentVariantMap = HifiConfigVariantMap::mergeCLParametersWithJSONConfig(arguments());
|
_argumentVariantMap = HifiConfigVariantMap::mergeCLParametersWithJSONConfig(arguments());
|
||||||
|
|
||||||
_networkAccessManager = new QNetworkAccessManager(this);
|
|
||||||
|
|
||||||
if (optionallyReadX509KeyAndCertificate() && optionallySetupOAuth() && optionallySetupAssignmentPayment()) {
|
if (optionallyReadX509KeyAndCertificate() && optionallySetupOAuth() && optionallySetupAssignmentPayment()) {
|
||||||
// we either read a certificate and private key or were not passed one
|
// we either read a certificate and private key or were not passed one
|
||||||
// and completed login or did not need to
|
// and completed login or did not need to
|
||||||
|
@ -1196,7 +1194,7 @@ bool DomainServer::handleHTTPSRequest(HTTPSConnection* connection, const QUrl &u
|
||||||
QNetworkRequest tokenRequest(tokenRequestUrl);
|
QNetworkRequest tokenRequest(tokenRequestUrl);
|
||||||
tokenRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
tokenRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
||||||
|
|
||||||
QNetworkReply* tokenReply = _networkAccessManager->post(tokenRequest, tokenPostBody.toLocal8Bit());
|
QNetworkReply* tokenReply = NetworkAccessManager::getInstance().post(tokenRequest, tokenPostBody.toLocal8Bit());
|
||||||
|
|
||||||
qDebug() << "Requesting a token for user with session UUID" << uuidStringWithoutCurlyBraces(stateUUID);
|
qDebug() << "Requesting a token for user with session UUID" << uuidStringWithoutCurlyBraces(stateUUID);
|
||||||
|
|
||||||
|
@ -1233,7 +1231,7 @@ void DomainServer::handleTokenRequestFinished() {
|
||||||
profileURL.setPath("/api/v1/users/profile");
|
profileURL.setPath("/api/v1/users/profile");
|
||||||
profileURL.setQuery(QString("%1=%2").arg(OAUTH_JSON_ACCESS_TOKEN_KEY, accessToken));
|
profileURL.setQuery(QString("%1=%2").arg(OAUTH_JSON_ACCESS_TOKEN_KEY, accessToken));
|
||||||
|
|
||||||
QNetworkReply* profileReply = _networkAccessManager->get(QNetworkRequest(profileURL));
|
QNetworkReply* profileReply = NetworkAccessManager::getInstance().get(QNetworkRequest(profileURL));
|
||||||
|
|
||||||
qDebug() << "Requesting access token for user with session UUID" << uuidStringWithoutCurlyBraces(matchingSessionUUID);
|
qDebug() << "Requesting access token for user with session UUID" << uuidStringWithoutCurlyBraces(matchingSessionUUID);
|
||||||
|
|
||||||
|
|
|
@ -103,8 +103,6 @@ private:
|
||||||
|
|
||||||
bool _isUsingDTLS;
|
bool _isUsingDTLS;
|
||||||
|
|
||||||
QNetworkAccessManager* _networkAccessManager;
|
|
||||||
|
|
||||||
QUrl _oauthProviderURL;
|
QUrl _oauthProviderURL;
|
||||||
QString _oauthClientID;
|
QString _oauthClientID;
|
||||||
QString _oauthClientSecret;
|
QString _oauthClientSecret;
|
||||||
|
|
|
@ -32,7 +32,6 @@
|
||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
#include <QMenuBar>
|
#include <QMenuBar>
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
#include <QNetworkAccessManager>
|
|
||||||
#include <QNetworkReply>
|
#include <QNetworkReply>
|
||||||
#include <QNetworkDiskCache>
|
#include <QNetworkDiskCache>
|
||||||
#include <QOpenGLFramebufferObject>
|
#include <QOpenGLFramebufferObject>
|
||||||
|
@ -53,17 +52,18 @@
|
||||||
|
|
||||||
#include <AccountManager.h>
|
#include <AccountManager.h>
|
||||||
#include <AudioInjector.h>
|
#include <AudioInjector.h>
|
||||||
|
#include <LocalVoxelsList.h>
|
||||||
#include <Logging.h>
|
#include <Logging.h>
|
||||||
#include <ModelsScriptingInterface.h>
|
#include <ModelsScriptingInterface.h>
|
||||||
|
#include <NetworkAccessManager.h>
|
||||||
#include <OctalCode.h>
|
#include <OctalCode.h>
|
||||||
|
#include <OctreeSceneStats.h>
|
||||||
#include <PacketHeaders.h>
|
#include <PacketHeaders.h>
|
||||||
#include <ParticlesScriptingInterface.h>
|
#include <ParticlesScriptingInterface.h>
|
||||||
#include <PerfStat.h>
|
#include <PerfStat.h>
|
||||||
#include <ResourceCache.h>
|
#include <ResourceCache.h>
|
||||||
#include <UserActivityLogger.h>
|
#include <UserActivityLogger.h>
|
||||||
#include <UUID.h>
|
#include <UUID.h>
|
||||||
#include <OctreeSceneStats.h>
|
|
||||||
#include <LocalVoxelsList.h>
|
|
||||||
|
|
||||||
#include "Application.h"
|
#include "Application.h"
|
||||||
#include "InterfaceVersion.h"
|
#include "InterfaceVersion.h"
|
||||||
|
@ -314,12 +314,13 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) :
|
||||||
|
|
||||||
QString cachePath = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
|
QString cachePath = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
|
||||||
|
|
||||||
_networkAccessManager = new QNetworkAccessManager(this);
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
QNetworkDiskCache* cache = new QNetworkDiskCache(_networkAccessManager);
|
QNetworkDiskCache* cache = new QNetworkDiskCache(&networkAccessManager);
|
||||||
cache->setCacheDirectory(!cachePath.isEmpty() ? cachePath : "interfaceCache");
|
cache->setCacheDirectory(!cachePath.isEmpty() ? cachePath : "interfaceCache");
|
||||||
_networkAccessManager->setCache(cache);
|
QMetaObject::invokeMethod(&networkAccessManager, "setCache",
|
||||||
|
Qt::BlockingQueuedConnection,
|
||||||
|
Q_ARG(QAbstractNetworkCache*, cache));
|
||||||
|
|
||||||
ResourceCache::setNetworkAccessManager(_networkAccessManager);
|
|
||||||
ResourceCache::setRequestLimit(3);
|
ResourceCache::setRequestLimit(3);
|
||||||
|
|
||||||
_window->setCentralWidget(_glWidget);
|
_window->setCentralWidget(_glWidget);
|
||||||
|
@ -441,8 +442,6 @@ Application::~Application() {
|
||||||
_myAvatar = NULL;
|
_myAvatar = NULL;
|
||||||
|
|
||||||
delete _glWidget;
|
delete _glWidget;
|
||||||
|
|
||||||
AccountManager::getInstance().destroy();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::saveSettings() {
|
void Application::saveSettings() {
|
||||||
|
@ -3802,7 +3801,8 @@ void Application::initAvatarAndViewFrustum() {
|
||||||
void Application::checkVersion() {
|
void Application::checkVersion() {
|
||||||
QNetworkRequest latestVersionRequest((QUrl(CHECK_VERSION_URL)));
|
QNetworkRequest latestVersionRequest((QUrl(CHECK_VERSION_URL)));
|
||||||
latestVersionRequest.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache);
|
latestVersionRequest.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache);
|
||||||
connect(Application::getInstance()->getNetworkAccessManager()->get(latestVersionRequest), SIGNAL(finished()), SLOT(parseVersionXml()));
|
QNetworkReply* reply = NetworkAccessManager::getInstance().get(latestVersionRequest);
|
||||||
|
connect(reply, SIGNAL(finished()), SLOT(parseVersionXml()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::parseVersionXml() {
|
void Application::parseVersionXml() {
|
||||||
|
|
|
@ -97,7 +97,6 @@ class QActionGroup;
|
||||||
class QGLWidget;
|
class QGLWidget;
|
||||||
class QKeyEvent;
|
class QKeyEvent;
|
||||||
class QMouseEvent;
|
class QMouseEvent;
|
||||||
class QNetworkAccessManager;
|
|
||||||
class QSettings;
|
class QSettings;
|
||||||
class QWheelEvent;
|
class QWheelEvent;
|
||||||
|
|
||||||
|
@ -236,7 +235,6 @@ public:
|
||||||
void lockOctreeSceneStats() { _octreeSceneStatsLock.lockForRead(); }
|
void lockOctreeSceneStats() { _octreeSceneStatsLock.lockForRead(); }
|
||||||
void unlockOctreeSceneStats() { _octreeSceneStatsLock.unlock(); }
|
void unlockOctreeSceneStats() { _octreeSceneStatsLock.unlock(); }
|
||||||
|
|
||||||
QNetworkAccessManager* getNetworkAccessManager() { return _networkAccessManager; }
|
|
||||||
GeometryCache* getGeometryCache() { return &_geometryCache; }
|
GeometryCache* getGeometryCache() { return &_geometryCache; }
|
||||||
AnimationCache* getAnimationCache() { return &_animationCache; }
|
AnimationCache* getAnimationCache() { return &_animationCache; }
|
||||||
TextureCache* getTextureCache() { return &_textureCache; }
|
TextureCache* getTextureCache() { return &_textureCache; }
|
||||||
|
@ -423,7 +421,6 @@ private:
|
||||||
QThread* _nodeThread;
|
QThread* _nodeThread;
|
||||||
DatagramProcessor _datagramProcessor;
|
DatagramProcessor _datagramProcessor;
|
||||||
|
|
||||||
QNetworkAccessManager* _networkAccessManager;
|
|
||||||
QMutex _settingsMutex;
|
QMutex _settingsMutex;
|
||||||
QSettings* _settings;
|
QSettings* _settings;
|
||||||
int _numChangedSettings;
|
int _numChangedSettings;
|
||||||
|
|
|
@ -396,7 +396,7 @@ void ModelUploader::uploadFailed(QNetworkReply::NetworkError errorCode, const QS
|
||||||
void ModelUploader::checkS3() {
|
void ModelUploader::checkS3() {
|
||||||
qDebug() << "Checking S3 for " << _url;
|
qDebug() << "Checking S3 for " << _url;
|
||||||
QNetworkRequest request(_url);
|
QNetworkRequest request(_url);
|
||||||
QNetworkReply* reply = _networkAccessManager.head(request);
|
QNetworkReply* reply = NetworkAccessManager::getInstance().head(request);
|
||||||
connect(reply, SIGNAL(finished()), SLOT(processCheck()));
|
connect(reply, SIGNAL(finished()), SLOT(processCheck()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,6 @@ private:
|
||||||
bool _readyToSend;
|
bool _readyToSend;
|
||||||
|
|
||||||
QHttpMultiPart* _dataMultiPart;
|
QHttpMultiPart* _dataMultiPart;
|
||||||
QNetworkAccessManager _networkAccessManager;
|
|
||||||
|
|
||||||
int _numberOfChecks;
|
int _numberOfChecks;
|
||||||
QTimer _timer;
|
QTimer _timer;
|
||||||
|
|
|
@ -11,14 +11,15 @@
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
//
|
//
|
||||||
|
|
||||||
#include <QNetworkAccessManager>
|
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QUrlQuery>
|
#include <QUrlQuery>
|
||||||
#include <QXmlStreamReader>
|
#include <QXmlStreamReader>
|
||||||
|
|
||||||
#include "ScriptsModel.h"
|
#include <NetworkAccessManager.h>
|
||||||
|
|
||||||
#include "Menu.h"
|
#include "Menu.h"
|
||||||
|
|
||||||
|
#include "ScriptsModel.h"
|
||||||
|
|
||||||
static const QString S3_URL = "http://highfidelity-public.s3-us-west-1.amazonaws.com";
|
static const QString S3_URL = "http://highfidelity-public.s3-us-west-1.amazonaws.com";
|
||||||
static const QString PUBLIC_URL = "http://public.highfidelity.io";
|
static const QString PUBLIC_URL = "http://public.highfidelity.io";
|
||||||
|
@ -113,14 +114,15 @@ void ScriptsModel::requestRemoteFiles(QString marker) {
|
||||||
}
|
}
|
||||||
url.setQuery(query);
|
url.setQuery(query);
|
||||||
|
|
||||||
QNetworkAccessManager* accessManager = new QNetworkAccessManager(this);
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
connect(accessManager, SIGNAL(finished(QNetworkReply*)), SLOT(downloadFinished(QNetworkReply*)));
|
|
||||||
|
|
||||||
QNetworkRequest request(url);
|
QNetworkRequest request(url);
|
||||||
accessManager->get(request);
|
QNetworkReply* reply = networkAccessManager.get(request);
|
||||||
|
connect(reply, SIGNAL(finished()), SLOT(downloadFinished()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScriptsModel::downloadFinished(QNetworkReply* reply) {
|
void ScriptsModel::downloadFinished() {
|
||||||
|
QNetworkReply* reply = static_cast<QNetworkReply*>(sender());
|
||||||
bool finished = true;
|
bool finished = true;
|
||||||
|
|
||||||
if (reply->error() == QNetworkReply::NoError) {
|
if (reply->error() == QNetworkReply::NoError) {
|
||||||
|
|
|
@ -43,7 +43,7 @@ public:
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
void updateScriptsLocation(const QString& newPath);
|
void updateScriptsLocation(const QString& newPath);
|
||||||
void downloadFinished(QNetworkReply* reply);
|
void downloadFinished();
|
||||||
void reloadLocalFiles();
|
void reloadLocalFiles();
|
||||||
void reloadRemoteFiles();
|
void reloadRemoteFiles();
|
||||||
|
|
||||||
|
|
|
@ -14,10 +14,11 @@
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QNetworkAccessManager>
|
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QXmlStreamReader>
|
#include <QXmlStreamReader>
|
||||||
|
|
||||||
|
#include <NetworkAccessManager.h>
|
||||||
|
|
||||||
#include "Application.h"
|
#include "Application.h"
|
||||||
|
|
||||||
#include "ModelsBrowser.h"
|
#include "ModelsBrowser.h"
|
||||||
|
@ -210,10 +211,10 @@ void ModelHandler::update() {
|
||||||
}
|
}
|
||||||
for (int i = 0; i < _model.rowCount(); ++i) {
|
for (int i = 0; i < _model.rowCount(); ++i) {
|
||||||
QUrl url(_model.item(i,0)->data(Qt::UserRole).toString());
|
QUrl url(_model.item(i,0)->data(Qt::UserRole).toString());
|
||||||
QNetworkAccessManager* accessManager = new QNetworkAccessManager(this);
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
QNetworkRequest request(url);
|
QNetworkRequest request(url);
|
||||||
accessManager->head(request);
|
QNetworkReply* reply = networkAccessManager.head(request);
|
||||||
connect(accessManager, SIGNAL(finished(QNetworkReply*)), SLOT(downloadFinished(QNetworkReply*)));
|
connect(reply, SIGNAL(finished()), SLOT(processCheck()));
|
||||||
}
|
}
|
||||||
_lock.unlock();
|
_lock.unlock();
|
||||||
}
|
}
|
||||||
|
@ -233,7 +234,8 @@ void ModelHandler::exit() {
|
||||||
_lock.unlock();
|
_lock.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModelHandler::downloadFinished(QNetworkReply* reply) {
|
void ModelHandler::downloadFinished() {
|
||||||
|
QNetworkReply* reply = static_cast<QNetworkReply*>(sender());
|
||||||
QByteArray data = reply->readAll();
|
QByteArray data = reply->readAll();
|
||||||
|
|
||||||
if (!data.isEmpty()) {
|
if (!data.isEmpty()) {
|
||||||
|
@ -261,10 +263,10 @@ void ModelHandler::queryNewFiles(QString marker) {
|
||||||
|
|
||||||
// Download
|
// Download
|
||||||
url.setQuery(query);
|
url.setQuery(query);
|
||||||
QNetworkAccessManager* accessManager = new QNetworkAccessManager(this);
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
QNetworkRequest request(url);
|
QNetworkRequest request(url);
|
||||||
accessManager->get(request);
|
QNetworkReply* reply = networkAccessManager.get(request);
|
||||||
connect(accessManager, SIGNAL(finished(QNetworkReply*)), SLOT(downloadFinished(QNetworkReply*)));
|
connect(reply, SIGNAL(finished()), SLOT(processCheck()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ public slots:
|
||||||
void exit();
|
void exit();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void downloadFinished(QNetworkReply* reply);
|
void downloadFinished();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool _initiateExit;
|
bool _initiateExit;
|
||||||
|
|
|
@ -148,8 +148,8 @@ void ScriptEditorWidget::loadFile(const QString& scriptPath) {
|
||||||
disconnect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished);
|
disconnect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
QNetworkAccessManager* networkManager = new QNetworkAccessManager(this);
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
QNetworkReply* reply = networkManager->get(QNetworkRequest(url));
|
QNetworkReply* reply = networkAccessManager.get(QNetworkRequest(url));
|
||||||
qDebug() << "Downloading included script at" << scriptPath;
|
qDebug() << "Downloading included script at" << scriptPath;
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
QObject::connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
|
QObject::connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
|
||||||
|
|
|
@ -40,8 +40,7 @@ Q_DECLARE_METATYPE(QNetworkAccessManager::Operation)
|
||||||
|
|
||||||
SnapshotShareDialog::SnapshotShareDialog(QString fileName, QWidget* parent) :
|
SnapshotShareDialog::SnapshotShareDialog(QString fileName, QWidget* parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
_fileName(fileName),
|
_fileName(fileName)
|
||||||
_networkAccessManager(NULL)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
setAttribute(Qt::WA_DeleteOnClose);
|
setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
@ -92,10 +91,6 @@ void SnapshotShareDialog::uploadSnapshot() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_networkAccessManager) {
|
|
||||||
_networkAccessManager = new QNetworkAccessManager(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
QHttpMultiPart* multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
|
QHttpMultiPart* multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
|
||||||
|
|
||||||
QHttpPart apiKeyPart;
|
QHttpPart apiKeyPart;
|
||||||
|
@ -118,9 +113,7 @@ void SnapshotShareDialog::uploadSnapshot() {
|
||||||
QUrl url(FORUM_UPLOADS_URL);
|
QUrl url(FORUM_UPLOADS_URL);
|
||||||
QNetworkRequest request(url);
|
QNetworkRequest request(url);
|
||||||
|
|
||||||
QNetworkReply* reply = _networkAccessManager->post(request, multiPart);
|
QNetworkReply* reply = NetworkAccessManager::getInstance().post(request, multiPart);
|
||||||
|
|
||||||
|
|
||||||
connect(reply, &QNetworkReply::finished, this, &SnapshotShareDialog::uploadRequestFinished);
|
connect(reply, &QNetworkReply::finished, this, &SnapshotShareDialog::uploadRequestFinished);
|
||||||
|
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
|
@ -129,11 +122,6 @@ void SnapshotShareDialog::uploadSnapshot() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SnapshotShareDialog::sendForumPost(QString snapshotPath) {
|
void SnapshotShareDialog::sendForumPost(QString snapshotPath) {
|
||||||
|
|
||||||
if (!_networkAccessManager) {
|
|
||||||
_networkAccessManager = new QNetworkAccessManager(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
// post to Discourse forum
|
// post to Discourse forum
|
||||||
QNetworkRequest request;
|
QNetworkRequest request;
|
||||||
QUrl forumUrl(FORUM_POST_URL);
|
QUrl forumUrl(FORUM_POST_URL);
|
||||||
|
@ -148,7 +136,7 @@ void SnapshotShareDialog::sendForumPost(QString snapshotPath) {
|
||||||
request.setUrl(forumUrl);
|
request.setUrl(forumUrl);
|
||||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
||||||
|
|
||||||
QNetworkReply* requestReply = _networkAccessManager->post(request, postData);
|
QNetworkReply* requestReply = NetworkAccessManager::getInstance().post(request, postData);
|
||||||
connect(requestReply, &QNetworkReply::finished, this, &SnapshotShareDialog::postRequestFinished);
|
connect(requestReply, &QNetworkReply::finished, this, &SnapshotShareDialog::postRequestFinished);
|
||||||
|
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
|
|
||||||
#include "ui_shareSnapshot.h"
|
#include "ui_shareSnapshot.h"
|
||||||
|
|
||||||
#include <QNetworkAccessManager>
|
|
||||||
#include <QNetworkReply>
|
#include <QNetworkReply>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
|
|
||||||
|
@ -26,7 +25,6 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString _fileName;
|
QString _fileName;
|
||||||
QNetworkAccessManager* _networkAccessManager;
|
|
||||||
Ui_SnapshotShareDialog _ui;
|
Ui_SnapshotShareDialog _ui;
|
||||||
|
|
||||||
void uploadSnapshot();
|
void uploadSnapshot();
|
||||||
|
|
|
@ -14,8 +14,7 @@
|
||||||
#include "BillboardOverlay.h"
|
#include "BillboardOverlay.h"
|
||||||
|
|
||||||
BillboardOverlay::BillboardOverlay()
|
BillboardOverlay::BillboardOverlay()
|
||||||
: _manager(NULL),
|
: _scale(1.0f),
|
||||||
_scale(1.0f),
|
|
||||||
_isFacingAvatar(true) {
|
_isFacingAvatar(true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,18 +118,13 @@ void BillboardOverlay::setProperties(const QScriptValue &properties) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: handle setting image multiple times, how do we manage releasing the bound texture?
|
|
||||||
void BillboardOverlay::setBillboardURL(const QUrl url) {
|
void BillboardOverlay::setBillboardURL(const QUrl url) {
|
||||||
// TODO: are we creating too many QNetworkAccessManager() when multiple calls to setImageURL are made?
|
QNetworkReply* reply = NetworkAccessManager::getInstance().get(QNetworkRequest(url));
|
||||||
_manager->deleteLater();
|
connect(reply, &QNetworkReply::finished, this, &BillboardOverlay::replyFinished);
|
||||||
_manager = new QNetworkAccessManager();
|
|
||||||
connect(_manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
|
|
||||||
_manager->get(QNetworkRequest(url));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BillboardOverlay::replyFinished(QNetworkReply* reply) {
|
void BillboardOverlay::replyFinished() {
|
||||||
// replace our byte array with the downloaded data
|
// replace our byte array with the downloaded data
|
||||||
|
QNetworkReply* reply = static_cast<QNetworkReply*>(sender());
|
||||||
_billboard = reply->readAll();
|
_billboard = reply->readAll();
|
||||||
_manager->deleteLater();
|
|
||||||
_manager = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,12 +27,11 @@ public:
|
||||||
virtual void setProperties(const QScriptValue& properties);
|
virtual void setProperties(const QScriptValue& properties);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void replyFinished(QNetworkReply* reply);
|
void replyFinished();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void setBillboardURL(const QUrl url);
|
void setBillboardURL(const QUrl url);
|
||||||
|
|
||||||
QNetworkAccessManager* _manager;
|
|
||||||
QUrl _url;
|
QUrl _url;
|
||||||
QByteArray _billboard;
|
QByteArray _billboard;
|
||||||
QSize _size;
|
QSize _size;
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#include "ImageOverlay.h"
|
#include "ImageOverlay.h"
|
||||||
|
|
||||||
ImageOverlay::ImageOverlay() :
|
ImageOverlay::ImageOverlay() :
|
||||||
_manager(NULL),
|
|
||||||
_textureID(0),
|
_textureID(0),
|
||||||
_renderImage(false),
|
_renderImage(false),
|
||||||
_textureBound(false),
|
_textureBound(false),
|
||||||
|
@ -36,21 +35,18 @@ ImageOverlay::~ImageOverlay() {
|
||||||
|
|
||||||
// TODO: handle setting image multiple times, how do we manage releasing the bound texture?
|
// TODO: handle setting image multiple times, how do we manage releasing the bound texture?
|
||||||
void ImageOverlay::setImageURL(const QUrl& url) {
|
void ImageOverlay::setImageURL(const QUrl& url) {
|
||||||
// TODO: are we creating too many QNetworkAccessManager() when multiple calls to setImageURL are made?
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
_manager->deleteLater();
|
QNetworkReply* reply = networkAccessManager.get(QNetworkRequest(url));
|
||||||
_manager = new QNetworkAccessManager();
|
connect(reply, &QNetworkReply::finished, this, &ImageOverlay::replyFinished);
|
||||||
connect(_manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
|
|
||||||
_manager->get(QNetworkRequest(url));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImageOverlay::replyFinished(QNetworkReply* reply) {
|
void ImageOverlay::replyFinished() {
|
||||||
|
QNetworkReply* reply = static_cast<QNetworkReply*>(sender());
|
||||||
|
|
||||||
// replace our byte array with the downloaded data
|
// replace our byte array with the downloaded data
|
||||||
QByteArray rawData = reply->readAll();
|
QByteArray rawData = reply->readAll();
|
||||||
_textureImage.loadFromData(rawData);
|
_textureImage.loadFromData(rawData);
|
||||||
_renderImage = true;
|
_renderImage = true;
|
||||||
_manager->deleteLater();
|
|
||||||
_manager = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImageOverlay::render() {
|
void ImageOverlay::render() {
|
||||||
|
|
|
@ -16,13 +16,13 @@
|
||||||
|
|
||||||
#include <QGLWidget>
|
#include <QGLWidget>
|
||||||
#include <QImage>
|
#include <QImage>
|
||||||
#include <QNetworkAccessManager>
|
|
||||||
#include <QNetworkReply>
|
#include <QNetworkReply>
|
||||||
#include <QRect>
|
#include <QRect>
|
||||||
#include <QScriptValue>
|
#include <QScriptValue>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
|
|
||||||
|
#include <NetworkAccessManager.h>
|
||||||
#include <SharedUtil.h>
|
#include <SharedUtil.h>
|
||||||
|
|
||||||
#include "Overlay.h"
|
#include "Overlay.h"
|
||||||
|
@ -46,13 +46,12 @@ public:
|
||||||
virtual void setProperties(const QScriptValue& properties);
|
virtual void setProperties(const QScriptValue& properties);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void replyFinished(QNetworkReply* reply); // we actually want to hide this...
|
void replyFinished(); // we actually want to hide this...
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
QUrl _imageURL;
|
QUrl _imageURL;
|
||||||
QImage _textureImage;
|
QImage _textureImage;
|
||||||
QNetworkAccessManager* _manager;
|
|
||||||
|
|
||||||
GLuint _textureID;
|
GLuint _textureID;
|
||||||
QRect _fromImage; // where from in the image to sample
|
QRect _fromImage; // where from in the image to sample
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
|
|
||||||
#include <QGLWidget>
|
#include <QGLWidget>
|
||||||
#include <QImage>
|
#include <QImage>
|
||||||
#include <QNetworkAccessManager>
|
|
||||||
#include <QNetworkReply>
|
#include <QNetworkReply>
|
||||||
#include <QRect>
|
#include <QRect>
|
||||||
#include <QScriptValue>
|
#include <QScriptValue>
|
||||||
|
|
|
@ -15,12 +15,12 @@
|
||||||
|
|
||||||
#include <QDataStream>
|
#include <QDataStream>
|
||||||
#include <QtCore/QDebug>
|
#include <QtCore/QDebug>
|
||||||
#include <QtNetwork/QNetworkAccessManager>
|
|
||||||
#include <QtNetwork/QNetworkRequest>
|
#include <QtNetwork/QNetworkRequest>
|
||||||
#include <QtNetwork/QNetworkReply>
|
#include <QtNetwork/QNetworkReply>
|
||||||
#include <qendian.h>
|
#include <qendian.h>
|
||||||
|
|
||||||
#include <LimitedNodeList.h>
|
#include <LimitedNodeList.h>
|
||||||
|
#include <NetworkAccessManager.h>
|
||||||
#include <SharedUtil.h>
|
#include <SharedUtil.h>
|
||||||
|
|
||||||
#include "AudioRingBuffer.h"
|
#include "AudioRingBuffer.h"
|
||||||
|
@ -73,11 +73,11 @@ Sound::Sound(const QUrl& sampleURL, QObject* parent) :
|
||||||
// assume we have a QApplication or QCoreApplication instance and use the
|
// assume we have a QApplication or QCoreApplication instance and use the
|
||||||
// QNetworkAccess manager to grab the raw audio file at the given URL
|
// QNetworkAccess manager to grab the raw audio file at the given URL
|
||||||
|
|
||||||
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
|
|
||||||
qDebug() << "Requesting audio file" << sampleURL.toDisplayString();
|
qDebug() << "Requesting audio file" << sampleURL.toDisplayString();
|
||||||
|
|
||||||
QNetworkReply* soundDownload = manager->get(QNetworkRequest(sampleURL));
|
QNetworkReply* soundDownload = networkAccessManager.get(QNetworkRequest(sampleURL));
|
||||||
connect(soundDownload, &QNetworkReply::finished, this, &Sound::replyFinished);
|
connect(soundDownload, &QNetworkReply::finished, this, &Sound::replyFinished);
|
||||||
connect(soundDownload, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(replyError(QNetworkReply::NetworkError)));
|
connect(soundDownload, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(replyError(QNetworkReply::NetworkError)));
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,10 +16,10 @@
|
||||||
#include <QtCore/QDataStream>
|
#include <QtCore/QDataStream>
|
||||||
#include <QtCore/QThread>
|
#include <QtCore/QThread>
|
||||||
#include <QtCore/QUuid>
|
#include <QtCore/QUuid>
|
||||||
#include <QtNetwork/QNetworkAccessManager>
|
|
||||||
#include <QtNetwork/QNetworkReply>
|
#include <QtNetwork/QNetworkReply>
|
||||||
#include <QtNetwork/QNetworkRequest>
|
#include <QtNetwork/QNetworkRequest>
|
||||||
|
|
||||||
|
#include <NetworkAccessManager.h>
|
||||||
#include <NodeList.h>
|
#include <NodeList.h>
|
||||||
#include <PacketHeaders.h>
|
#include <PacketHeaders.h>
|
||||||
#include <SharedUtil.h>
|
#include <SharedUtil.h>
|
||||||
|
@ -33,8 +33,6 @@ quint64 DEFAULT_FILTERED_LOG_EXPIRY = 2 * USECS_PER_SECOND;
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
QNetworkAccessManager* AvatarData::networkAccessManager = NULL;
|
|
||||||
|
|
||||||
AvatarData::AvatarData() :
|
AvatarData::AvatarData() :
|
||||||
_sessionUUID(),
|
_sessionUUID(),
|
||||||
_handPosition(0,0,0),
|
_handPosition(0,0,0),
|
||||||
|
@ -751,18 +749,15 @@ void AvatarData::setBillboard(const QByteArray& billboard) {
|
||||||
void AvatarData::setBillboardFromURL(const QString &billboardURL) {
|
void AvatarData::setBillboardFromURL(const QString &billboardURL) {
|
||||||
_billboardURL = billboardURL;
|
_billboardURL = billboardURL;
|
||||||
|
|
||||||
if (AvatarData::networkAccessManager) {
|
|
||||||
qDebug() << "Changing billboard for avatar to PNG at" << qPrintable(billboardURL);
|
qDebug() << "Changing billboard for avatar to PNG at" << qPrintable(billboardURL);
|
||||||
|
|
||||||
QNetworkRequest billboardRequest;
|
QNetworkRequest billboardRequest;
|
||||||
billboardRequest.setUrl(QUrl(billboardURL));
|
billboardRequest.setUrl(QUrl(billboardURL));
|
||||||
|
|
||||||
QNetworkReply* networkReply = AvatarData::networkAccessManager->get(billboardRequest);
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
connect(networkReply, SIGNAL(finished()), this, SLOT(setBillboardFromNetworkReply()));
|
QNetworkReply* networkReply = networkAccessManager.get(billboardRequest);
|
||||||
|
connect(networkReply, SIGNAL(finished()), this, SLOT(setBillboardFromNetworkReply()));
|
||||||
} else {
|
|
||||||
qDebug() << "Billboard PNG download requested but no network access manager is available.";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AvatarData::setBillboardFromNetworkReply() {
|
void AvatarData::setBillboardFromNetworkReply() {
|
||||||
|
@ -839,8 +834,9 @@ void AvatarData::updateJointMappings() {
|
||||||
_jointIndices.clear();
|
_jointIndices.clear();
|
||||||
_jointNames.clear();
|
_jointNames.clear();
|
||||||
|
|
||||||
if (networkAccessManager && _skeletonModelURL.fileName().toLower().endsWith(".fst")) {
|
if (_skeletonModelURL.fileName().toLower().endsWith(".fst")) {
|
||||||
QNetworkReply* networkReply = networkAccessManager->get(QNetworkRequest(_skeletonModelURL));
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
|
QNetworkReply* networkReply = networkAccessManager.get(QNetworkRequest(_skeletonModelURL));
|
||||||
connect(networkReply, SIGNAL(finished()), this, SLOT(setJointMappingsFromNetworkReply()));
|
connect(networkReply, SIGNAL(finished()), this, SLOT(setJointMappingsFromNetworkReply()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,7 +102,6 @@ enum KeyState {
|
||||||
const glm::vec3 vec3Zero(0.0f);
|
const glm::vec3 vec3Zero(0.0f);
|
||||||
|
|
||||||
class QDataStream;
|
class QDataStream;
|
||||||
class QNetworkAccessManager;
|
|
||||||
|
|
||||||
class AttachmentData;
|
class AttachmentData;
|
||||||
class JointData;
|
class JointData;
|
||||||
|
@ -269,8 +268,6 @@ public:
|
||||||
QElapsedTimer& getLastUpdateTimer() { return _lastUpdateTimer; }
|
QElapsedTimer& getLastUpdateTimer() { return _lastUpdateTimer; }
|
||||||
|
|
||||||
virtual float getBoundingRadius() const { return 1.f; }
|
virtual float getBoundingRadius() const { return 1.f; }
|
||||||
|
|
||||||
static void setNetworkAccessManager(QNetworkAccessManager* sharedAccessManager) { networkAccessManager = sharedAccessManager; }
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void sendIdentityPacket();
|
void sendIdentityPacket();
|
||||||
|
@ -323,8 +320,6 @@ protected:
|
||||||
|
|
||||||
QHash<QString, int> _jointIndices; ///< 1-based, since zero is returned for missing keys
|
QHash<QString, int> _jointIndices; ///< 1-based, since zero is returned for missing keys
|
||||||
QStringList _jointNames; ///< in order of depth-first traversal
|
QStringList _jointNames; ///< in order of depth-first traversal
|
||||||
|
|
||||||
static QNetworkAccessManager* networkAccessManager;
|
|
||||||
|
|
||||||
quint64 _errorLogExpiry; ///< time in future when to log an error
|
quint64 _errorLogExpiry; ///< time in future when to log an error
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,6 @@ JSONCallbackParameters::JSONCallbackParameters(QObject* jsonCallbackReceiver, co
|
||||||
|
|
||||||
AccountManager::AccountManager() :
|
AccountManager::AccountManager() :
|
||||||
_authURL(),
|
_authURL(),
|
||||||
_networkAccessManager(NULL),
|
|
||||||
_pendingCallbackMap(),
|
_pendingCallbackMap(),
|
||||||
_accountInfo()
|
_accountInfo()
|
||||||
{
|
{
|
||||||
|
@ -155,9 +154,7 @@ void AccountManager::invokedRequest(const QString& path, QNetworkAccessManager::
|
||||||
const JSONCallbackParameters& callbackParams,
|
const JSONCallbackParameters& callbackParams,
|
||||||
const QByteArray& dataByteArray, QHttpMultiPart* dataMultiPart) {
|
const QByteArray& dataByteArray, QHttpMultiPart* dataMultiPart) {
|
||||||
|
|
||||||
if (!_networkAccessManager) {
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
_networkAccessManager = new QNetworkAccessManager(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hasValidAccessToken()) {
|
if (hasValidAccessToken()) {
|
||||||
QNetworkRequest authenticatedRequest;
|
QNetworkRequest authenticatedRequest;
|
||||||
|
@ -186,29 +183,29 @@ void AccountManager::invokedRequest(const QString& path, QNetworkAccessManager::
|
||||||
|
|
||||||
switch (operation) {
|
switch (operation) {
|
||||||
case QNetworkAccessManager::GetOperation:
|
case QNetworkAccessManager::GetOperation:
|
||||||
networkReply = _networkAccessManager->get(authenticatedRequest);
|
networkReply = networkAccessManager.get(authenticatedRequest);
|
||||||
break;
|
break;
|
||||||
case QNetworkAccessManager::PostOperation:
|
case QNetworkAccessManager::PostOperation:
|
||||||
case QNetworkAccessManager::PutOperation:
|
case QNetworkAccessManager::PutOperation:
|
||||||
if (dataMultiPart) {
|
if (dataMultiPart) {
|
||||||
if (operation == QNetworkAccessManager::PostOperation) {
|
if (operation == QNetworkAccessManager::PostOperation) {
|
||||||
networkReply = _networkAccessManager->post(authenticatedRequest, dataMultiPart);
|
networkReply = networkAccessManager.post(authenticatedRequest, dataMultiPart);
|
||||||
} else {
|
} else {
|
||||||
networkReply = _networkAccessManager->put(authenticatedRequest, dataMultiPart);
|
networkReply = networkAccessManager.put(authenticatedRequest, dataMultiPart);
|
||||||
}
|
}
|
||||||
dataMultiPart->setParent(networkReply);
|
dataMultiPart->setParent(networkReply);
|
||||||
} else {
|
} else {
|
||||||
authenticatedRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
authenticatedRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
|
||||||
if (operation == QNetworkAccessManager::PostOperation) {
|
if (operation == QNetworkAccessManager::PostOperation) {
|
||||||
networkReply = _networkAccessManager->post(authenticatedRequest, dataByteArray);
|
networkReply = networkAccessManager.post(authenticatedRequest, dataByteArray);
|
||||||
} else {
|
} else {
|
||||||
networkReply = _networkAccessManager->put(authenticatedRequest, dataByteArray);
|
networkReply = networkAccessManager.put(authenticatedRequest, dataByteArray);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case QNetworkAccessManager::DeleteOperation:
|
case QNetworkAccessManager::DeleteOperation:
|
||||||
networkReply = _networkAccessManager->sendCustomRequest(authenticatedRequest, "DELETE");
|
networkReply = networkAccessManager.sendCustomRequest(authenticatedRequest, "DELETE");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// other methods not yet handled
|
// other methods not yet handled
|
||||||
|
@ -309,9 +306,7 @@ bool AccountManager::checkAndSignalForAccessToken() {
|
||||||
|
|
||||||
void AccountManager::requestAccessToken(const QString& login, const QString& password) {
|
void AccountManager::requestAccessToken(const QString& login, const QString& password) {
|
||||||
|
|
||||||
if (!_networkAccessManager) {
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
_networkAccessManager = new QNetworkAccessManager(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
QNetworkRequest request;
|
QNetworkRequest request;
|
||||||
|
|
||||||
|
@ -329,7 +324,7 @@ void AccountManager::requestAccessToken(const QString& login, const QString& pas
|
||||||
request.setUrl(grantURL);
|
request.setUrl(grantURL);
|
||||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
||||||
|
|
||||||
QNetworkReply* requestReply = _networkAccessManager->post(request, postData);
|
QNetworkReply* requestReply = networkAccessManager.post(request, postData);
|
||||||
connect(requestReply, &QNetworkReply::finished, this, &AccountManager::requestAccessTokenFinished);
|
connect(requestReply, &QNetworkReply::finished, this, &AccountManager::requestAccessTokenFinished);
|
||||||
connect(requestReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(requestAccessTokenError(QNetworkReply::NetworkError)));
|
connect(requestReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(requestAccessTokenError(QNetworkReply::NetworkError)));
|
||||||
}
|
}
|
||||||
|
@ -381,15 +376,13 @@ void AccountManager::requestAccessTokenError(QNetworkReply::NetworkError error)
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountManager::requestProfile() {
|
void AccountManager::requestProfile() {
|
||||||
if (!_networkAccessManager) {
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
_networkAccessManager = new QNetworkAccessManager(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
QUrl profileURL = _authURL;
|
QUrl profileURL = _authURL;
|
||||||
profileURL.setPath("/api/v1/users/profile");
|
profileURL.setPath("/api/v1/users/profile");
|
||||||
profileURL.setQuery("access_token=" + _accountInfo.getAccessToken().token);
|
profileURL.setQuery("access_token=" + _accountInfo.getAccessToken().token);
|
||||||
|
|
||||||
QNetworkReply* profileReply = _networkAccessManager->get(QNetworkRequest(profileURL));
|
QNetworkReply* profileReply = networkAccessManager.get(QNetworkRequest(profileURL));
|
||||||
connect(profileReply, &QNetworkReply::finished, this, &AccountManager::requestProfileFinished);
|
connect(profileReply, &QNetworkReply::finished, this, &AccountManager::requestProfileFinished);
|
||||||
connect(profileReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(requestProfileError(QNetworkReply::NetworkError)));
|
connect(profileReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(requestProfileError(QNetworkReply::NetworkError)));
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,9 +15,10 @@
|
||||||
#include <QtCore/QByteArray>
|
#include <QtCore/QByteArray>
|
||||||
#include <QtCore/QObject>
|
#include <QtCore/QObject>
|
||||||
#include <QtCore/QUrl>
|
#include <QtCore/QUrl>
|
||||||
#include <QtNetwork/QNetworkAccessManager>
|
|
||||||
#include <QtNetwork/QNetworkReply>
|
#include <QtNetwork/QNetworkReply>
|
||||||
|
|
||||||
|
#include "NetworkAccessManager.h"
|
||||||
|
|
||||||
#include "DataServerAccountInfo.h"
|
#include "DataServerAccountInfo.h"
|
||||||
|
|
||||||
class JSONCallbackParameters {
|
class JSONCallbackParameters {
|
||||||
|
@ -60,8 +61,6 @@ public:
|
||||||
|
|
||||||
const DataServerAccountInfo& getAccountInfo() const { return _accountInfo; }
|
const DataServerAccountInfo& getAccountInfo() const { return _accountInfo; }
|
||||||
|
|
||||||
void destroy() { delete _networkAccessManager; }
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void requestAccessTokenFinished();
|
void requestAccessTokenFinished();
|
||||||
void requestProfileFinished();
|
void requestProfileFinished();
|
||||||
|
@ -95,7 +94,6 @@ private:
|
||||||
QHttpMultiPart* dataMultiPart);
|
QHttpMultiPart* dataMultiPart);
|
||||||
|
|
||||||
QUrl _authURL;
|
QUrl _authURL;
|
||||||
QNetworkAccessManager* _networkAccessManager;
|
|
||||||
QMap<QNetworkReply*, JSONCallbackParameters> _pendingCallbackMap;
|
QMap<QNetworkReply*, JSONCallbackParameters> _pendingCallbackMap;
|
||||||
|
|
||||||
DataServerAccountInfo _accountInfo;
|
DataServerAccountInfo _accountInfo;
|
||||||
|
|
149
libraries/networking/src/NetworkAccessManager.cpp
Normal file
149
libraries/networking/src/NetworkAccessManager.cpp
Normal file
|
@ -0,0 +1,149 @@
|
||||||
|
//
|
||||||
|
// NetworkAccessManager.cpp
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Created by Clement on 7/1/14.
|
||||||
|
// Copyright 2014 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <QMetaObject>
|
||||||
|
#include <QThread>
|
||||||
|
|
||||||
|
#include "NetworkAccessManager.h"
|
||||||
|
|
||||||
|
NetworkAccessManager& NetworkAccessManager::getInstance() {
|
||||||
|
static NetworkAccessManager sharedInstance;
|
||||||
|
return sharedInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
NetworkAccessManager::NetworkAccessManager() {
|
||||||
|
}
|
||||||
|
|
||||||
|
QNetworkReply* NetworkAccessManager::get(const QNetworkRequest& request) {
|
||||||
|
if (QThread::currentThread() != thread()) {
|
||||||
|
QNetworkReply* result;
|
||||||
|
QMetaObject::invokeMethod(this,
|
||||||
|
"get",
|
||||||
|
Qt::BlockingQueuedConnection,
|
||||||
|
Q_RETURN_ARG(QNetworkReply*, result),
|
||||||
|
Q_ARG(const QNetworkRequest, request));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return QNetworkAccessManager::get(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
QNetworkReply* NetworkAccessManager::head(const QNetworkRequest& request) {
|
||||||
|
if (QThread::currentThread() != thread()) {
|
||||||
|
QNetworkReply* result;
|
||||||
|
QMetaObject::invokeMethod(this,
|
||||||
|
"head",
|
||||||
|
Qt::BlockingQueuedConnection,
|
||||||
|
Q_RETURN_ARG(QNetworkReply*, result),
|
||||||
|
Q_ARG(const QNetworkRequest, request));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return QNetworkAccessManager::head(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
QNetworkReply* NetworkAccessManager::post(const QNetworkRequest& request, QIODevice* data) {
|
||||||
|
if (QThread::currentThread() != thread()) {
|
||||||
|
QNetworkReply* result;
|
||||||
|
QMetaObject::invokeMethod(this,
|
||||||
|
"post",
|
||||||
|
Qt::BlockingQueuedConnection,
|
||||||
|
Q_RETURN_ARG(QNetworkReply*, result),
|
||||||
|
Q_ARG(const QNetworkRequest, request),
|
||||||
|
Q_ARG(QIODevice*, data));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return QNetworkAccessManager::post(request, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
QNetworkReply* NetworkAccessManager::post(const QNetworkRequest& request, const QByteArray& data) {
|
||||||
|
if (QThread::currentThread() != thread()) {
|
||||||
|
QNetworkReply* result;
|
||||||
|
QMetaObject::invokeMethod(this,
|
||||||
|
"post",
|
||||||
|
Qt::BlockingQueuedConnection,
|
||||||
|
Q_RETURN_ARG(QNetworkReply*, result),
|
||||||
|
Q_ARG(const QNetworkRequest, request),
|
||||||
|
Q_ARG(const QByteArray, data));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return QNetworkAccessManager::post(request, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
QNetworkReply* NetworkAccessManager::post(const QNetworkRequest& request, QHttpMultiPart* multiPart) {
|
||||||
|
if (QThread::currentThread() != thread()) {
|
||||||
|
QNetworkReply* result;
|
||||||
|
QMetaObject::invokeMethod(this,
|
||||||
|
"post",
|
||||||
|
Qt::BlockingQueuedConnection,
|
||||||
|
Q_RETURN_ARG(QNetworkReply*, result),
|
||||||
|
Q_ARG(const QNetworkRequest, request),
|
||||||
|
Q_ARG(QHttpMultiPart*, multiPart));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return QNetworkAccessManager::post(request, multiPart);
|
||||||
|
}
|
||||||
|
|
||||||
|
QNetworkReply* NetworkAccessManager::put(const QNetworkRequest& request, QIODevice* data) {
|
||||||
|
if (QThread::currentThread() != thread()) {
|
||||||
|
QNetworkReply* result;
|
||||||
|
QMetaObject::invokeMethod(this,
|
||||||
|
"put",
|
||||||
|
Qt::BlockingQueuedConnection,
|
||||||
|
Q_RETURN_ARG(QNetworkReply*, result),
|
||||||
|
Q_ARG(const QNetworkRequest, request),
|
||||||
|
Q_ARG(QIODevice*, data));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return QNetworkAccessManager::put(request, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
QNetworkReply* NetworkAccessManager::put(const QNetworkRequest& request, QHttpMultiPart* multiPart) {
|
||||||
|
if (QThread::currentThread() != thread()) {
|
||||||
|
QNetworkReply* result;
|
||||||
|
QMetaObject::invokeMethod(this,
|
||||||
|
"put",
|
||||||
|
Qt::BlockingQueuedConnection,
|
||||||
|
Q_RETURN_ARG(QNetworkReply*, result),
|
||||||
|
Q_ARG(const QNetworkRequest, request),
|
||||||
|
Q_ARG(QHttpMultiPart*, multiPart));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return QNetworkAccessManager::put(request, multiPart);
|
||||||
|
}
|
||||||
|
|
||||||
|
QNetworkReply* NetworkAccessManager::put(const QNetworkRequest & request, const QByteArray & data) {
|
||||||
|
if (QThread::currentThread() != thread()) {
|
||||||
|
QNetworkReply* result;
|
||||||
|
QMetaObject::invokeMethod(this,
|
||||||
|
"put",
|
||||||
|
Qt::BlockingQueuedConnection,
|
||||||
|
Q_RETURN_ARG(QNetworkReply*, result),
|
||||||
|
Q_ARG(const QNetworkRequest, request),
|
||||||
|
Q_ARG(const QByteArray, data));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
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);
|
||||||
|
}
|
41
libraries/networking/src/NetworkAccessManager.h
Normal file
41
libraries/networking/src/NetworkAccessManager.h
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
//
|
||||||
|
// NetworkAccessManager.h
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Created by Clement on 7/1/14.
|
||||||
|
// Copyright 2014 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef hifi_NetworkAccessManager_h
|
||||||
|
#define hifi_NetworkAccessManager_h
|
||||||
|
|
||||||
|
#include <QNetworkAccessManager>
|
||||||
|
#include <QNetworkConfiguration>
|
||||||
|
#include <QNetworkProxy>
|
||||||
|
|
||||||
|
/// 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:
|
||||||
|
static NetworkAccessManager& getInstance();
|
||||||
|
|
||||||
|
Q_INVOKABLE QNetworkReply* get(const QNetworkRequest& request);
|
||||||
|
Q_INVOKABLE QNetworkReply* head(const QNetworkRequest& request);
|
||||||
|
Q_INVOKABLE QNetworkReply* post(const QNetworkRequest& request, QIODevice* data);
|
||||||
|
Q_INVOKABLE QNetworkReply* post(const QNetworkRequest& request, const QByteArray& data);
|
||||||
|
Q_INVOKABLE QNetworkReply* post(const QNetworkRequest& request, QHttpMultiPart* multiPart);
|
||||||
|
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();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // hifi_NetworkAccessManager_h
|
|
@ -16,6 +16,8 @@
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
|
|
||||||
|
#include "NetworkAccessManager.h"
|
||||||
|
|
||||||
#include "ResourceCache.h"
|
#include "ResourceCache.h"
|
||||||
|
|
||||||
ResourceCache::ResourceCache(QObject* parent) :
|
ResourceCache::ResourceCache(QObject* parent) :
|
||||||
|
@ -103,8 +105,6 @@ void ResourceCache::requestCompleted(Resource* resource) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkAccessManager* ResourceCache::_networkAccessManager = NULL;
|
|
||||||
|
|
||||||
const int DEFAULT_REQUEST_LIMIT = 10;
|
const int DEFAULT_REQUEST_LIMIT = 10;
|
||||||
int ResourceCache::_requestLimit = DEFAULT_REQUEST_LIMIT;
|
int ResourceCache::_requestLimit = DEFAULT_REQUEST_LIMIT;
|
||||||
|
|
||||||
|
@ -219,7 +219,7 @@ void Resource::init() {
|
||||||
if (_url.isEmpty()) {
|
if (_url.isEmpty()) {
|
||||||
_startedLoading = _loaded = true;
|
_startedLoading = _loaded = true;
|
||||||
|
|
||||||
} else if (!(_url.isValid() && ResourceCache::getNetworkAccessManager())) {
|
} else if (!(_url.isValid())) {
|
||||||
_startedLoading = _failedToLoad = true;
|
_startedLoading = _failedToLoad = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -272,7 +272,7 @@ void Resource::handleReplyTimeout() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Resource::makeRequest() {
|
void Resource::makeRequest() {
|
||||||
_reply = ResourceCache::getNetworkAccessManager()->get(_request);
|
_reply = NetworkAccessManager::getInstance().get(_request);
|
||||||
|
|
||||||
connect(_reply, SIGNAL(downloadProgress(qint64,qint64)), SLOT(handleDownloadProgress(qint64,qint64)));
|
connect(_reply, SIGNAL(downloadProgress(qint64,qint64)), SLOT(handleDownloadProgress(qint64,qint64)));
|
||||||
connect(_reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(handleReplyError()));
|
connect(_reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(handleReplyError()));
|
|
@ -22,7 +22,6 @@
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QWeakPointer>
|
#include <QWeakPointer>
|
||||||
|
|
||||||
class QNetworkAccessManager;
|
|
||||||
class QNetworkReply;
|
class QNetworkReply;
|
||||||
class QTimer;
|
class QTimer;
|
||||||
|
|
||||||
|
@ -33,10 +32,6 @@ class ResourceCache : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
static void setNetworkAccessManager(QNetworkAccessManager* manager) { _networkAccessManager = manager; }
|
|
||||||
static QNetworkAccessManager* getNetworkAccessManager() { return _networkAccessManager; }
|
|
||||||
|
|
||||||
static void setRequestLimit(int limit) { _requestLimit = limit; }
|
static void setRequestLimit(int limit) { _requestLimit = limit; }
|
||||||
static int getRequestLimit() { return _requestLimit; }
|
static int getRequestLimit() { return _requestLimit; }
|
||||||
|
|
||||||
|
@ -76,7 +71,6 @@ private:
|
||||||
QHash<QUrl, QWeakPointer<Resource> > _resources;
|
QHash<QUrl, QWeakPointer<Resource> > _resources;
|
||||||
int _lastLRUKey;
|
int _lastLRUKey;
|
||||||
|
|
||||||
static QNetworkAccessManager* _networkAccessManager;
|
|
||||||
static int _requestLimit;
|
static int _requestLimit;
|
||||||
static QList<QPointer<Resource> > _pendingRequests;
|
static QList<QPointer<Resource> > _pendingRequests;
|
||||||
static QList<Resource*> _loadingRequests;
|
static QList<Resource*> _loadingRequests;
|
|
@ -13,7 +13,6 @@
|
||||||
#include <QtCore/QEventLoop>
|
#include <QtCore/QEventLoop>
|
||||||
#include <QtCore/QTimer>
|
#include <QtCore/QTimer>
|
||||||
#include <QtCore/QThread>
|
#include <QtCore/QThread>
|
||||||
#include <QtNetwork/QNetworkAccessManager>
|
|
||||||
#include <QtNetwork/QNetworkRequest>
|
#include <QtNetwork/QNetworkRequest>
|
||||||
#include <QtNetwork/QNetworkReply>
|
#include <QtNetwork/QNetworkReply>
|
||||||
#include <QScriptEngine>
|
#include <QScriptEngine>
|
||||||
|
@ -23,6 +22,7 @@
|
||||||
#include <AvatarData.h>
|
#include <AvatarData.h>
|
||||||
#include <CollisionInfo.h>
|
#include <CollisionInfo.h>
|
||||||
#include <ModelsScriptingInterface.h>
|
#include <ModelsScriptingInterface.h>
|
||||||
|
#include <NetworkAccessManager.h>
|
||||||
#include <NodeList.h>
|
#include <NodeList.h>
|
||||||
#include <PacketHeaders.h>
|
#include <PacketHeaders.h>
|
||||||
#include <ParticlesScriptingInterface.h>
|
#include <ParticlesScriptingInterface.h>
|
||||||
|
@ -141,8 +141,8 @@ ScriptEngine::ScriptEngine(const QUrl& scriptURL,
|
||||||
emit errorMessage("ERROR Loading file:" + fileName);
|
emit errorMessage("ERROR Loading file:" + fileName);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
QNetworkAccessManager* networkManager = new QNetworkAccessManager(this);
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
QNetworkReply* reply = networkManager->get(QNetworkRequest(url));
|
QNetworkReply* reply = networkAccessManager.get(QNetworkRequest(url));
|
||||||
qDebug() << "Downloading included script at" << url;
|
qDebug() << "Downloading included script at" << url;
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
|
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
|
||||||
|
@ -646,8 +646,8 @@ void ScriptEngine::include(const QString& includeFile) {
|
||||||
QString includeContents;
|
QString includeContents;
|
||||||
|
|
||||||
if (url.scheme() == "http" || url.scheme() == "ftp") {
|
if (url.scheme() == "http" || url.scheme() == "ftp") {
|
||||||
QNetworkAccessManager* networkManager = new QNetworkAccessManager(this);
|
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||||
QNetworkReply* reply = networkManager->get(QNetworkRequest(url));
|
QNetworkReply* reply = networkAccessManager.get(QNetworkRequest(url));
|
||||||
qDebug() << "Downloading included script at" << includeFile;
|
qDebug() << "Downloading included script at" << includeFile;
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
|
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
|
|
||||||
#include <QEventLoop>
|
#include <QEventLoop>
|
||||||
|
|
||||||
|
#include <NetworkAccessManager.h>
|
||||||
|
|
||||||
#include "XMLHttpRequestClass.h"
|
#include "XMLHttpRequestClass.h"
|
||||||
|
|
||||||
XMLHttpRequestClass::XMLHttpRequestClass(QScriptEngine* engine) :
|
XMLHttpRequestClass::XMLHttpRequestClass(QScriptEngine* engine) :
|
||||||
|
@ -22,7 +24,6 @@ XMLHttpRequestClass::XMLHttpRequestClass(QScriptEngine* engine) :
|
||||||
_url(),
|
_url(),
|
||||||
_method(""),
|
_method(""),
|
||||||
_responseType(""),
|
_responseType(""),
|
||||||
_manager(this),
|
|
||||||
_request(),
|
_request(),
|
||||||
_reply(NULL),
|
_reply(NULL),
|
||||||
_sendData(NULL),
|
_sendData(NULL),
|
||||||
|
@ -161,7 +162,7 @@ void XMLHttpRequestClass::send(const QString& data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void XMLHttpRequestClass::doSend() {
|
void XMLHttpRequestClass::doSend() {
|
||||||
_reply = _manager.sendCustomRequest(_request, _method.toLatin1(), _sendData);
|
_reply = NetworkAccessManager::getInstance().sendCustomRequest(_request, _method.toLatin1(), _sendData);
|
||||||
|
|
||||||
connectToReply(_reply);
|
connectToReply(_reply);
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
#define hifi_XMLHttpRequestClass_h
|
#define hifi_XMLHttpRequestClass_h
|
||||||
|
|
||||||
#include <QBuffer>
|
#include <QBuffer>
|
||||||
#include <QNetworkAccessManager>
|
|
||||||
#include <QNetworkReply>
|
#include <QNetworkReply>
|
||||||
#include <QNetworkRequest>
|
#include <QNetworkRequest>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
@ -104,7 +103,6 @@ private:
|
||||||
QUrl _url;
|
QUrl _url;
|
||||||
QString _method;
|
QString _method;
|
||||||
QString _responseType;
|
QString _responseType;
|
||||||
QNetworkAccessManager _manager;
|
|
||||||
QNetworkRequest _request;
|
QNetworkRequest _request;
|
||||||
QNetworkReply* _reply;
|
QNetworkReply* _reply;
|
||||||
QBuffer* _sendData;
|
QBuffer* _sendData;
|
||||||
|
|
Loading…
Reference in a new issue