diff --git a/libraries/gl/src/gl/OffscreenQmlSurface.cpp b/libraries/gl/src/gl/OffscreenQmlSurface.cpp index ebccc8a1fc..d813e002c7 100644 --- a/libraries/gl/src/gl/OffscreenQmlSurface.cpp +++ b/libraries/gl/src/gl/OffscreenQmlSurface.cpp @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include "OffscreenGLCanvas.h" #include "GLEscrow.h" @@ -56,6 +56,22 @@ private: friend class OffscreenQmlSurface; }; +class QmlNetworkAccessManager : public NetworkAccessManager { +public: + friend class QmlNetworkAccessManagerFactory; +protected: + QmlNetworkAccessManager(QObject* parent) : NetworkAccessManager(parent) { } +}; + +class QmlNetworkAccessManagerFactory : public QQmlNetworkAccessManagerFactory { +public: + QNetworkAccessManager* create(QObject* parent); +}; + +QNetworkAccessManager* QmlNetworkAccessManagerFactory::create(QObject* parent) { + return new QmlNetworkAccessManager(parent); +} + Q_DECLARE_LOGGING_CATEGORY(offscreenFocus) Q_LOGGING_CATEGORY(offscreenFocus, "hifi.offscreen.focus") diff --git a/libraries/networking/src/QmlAtpReply.cpp b/libraries/networking/src/AtpReply.cpp similarity index 86% rename from libraries/networking/src/QmlAtpReply.cpp rename to libraries/networking/src/AtpReply.cpp index a2e537ba1f..4440995ee0 100644 --- a/libraries/networking/src/QmlAtpReply.cpp +++ b/libraries/networking/src/AtpReply.cpp @@ -1,5 +1,5 @@ // -// QmlAtpReply.cpp +// AtpReply.cpp // libraries/networking/src // // Created by Zander Otavka on 8/4/16. @@ -10,30 +10,30 @@ // #include "ResourceManager.h" -#include "QmlAtpReply.h" +#include "AtpReply.h" -QmlAtpReply::QmlAtpReply(const QUrl& url, QObject* parent) : +AtpReply::AtpReply(const QUrl& url, QObject* parent) : _resourceRequest(ResourceManager::createResourceRequest(parent, url)) { setOperation(QNetworkAccessManager::GetOperation); - connect(_resourceRequest, &AssetResourceRequest::progress, this, &QmlAtpReply::downloadProgress); - connect(_resourceRequest, &AssetResourceRequest::finished, this, &QmlAtpReply::handleRequestFinish); + connect(_resourceRequest, &AssetResourceRequest::progress, this, &AtpReply::downloadProgress); + connect(_resourceRequest, &AssetResourceRequest::finished, this, &AtpReply::handleRequestFinish); _resourceRequest->send(); } -QmlAtpReply::~QmlAtpReply() { +AtpReply::~AtpReply() { if (_resourceRequest) { _resourceRequest->deleteLater(); _resourceRequest = nullptr; } } -qint64 QmlAtpReply::bytesAvailable() const { +qint64 AtpReply::bytesAvailable() const { return _content.size() - _readOffset + QIODevice::bytesAvailable(); } -qint64 QmlAtpReply::readData(char* data, qint64 maxSize) { +qint64 AtpReply::readData(char* data, qint64 maxSize) { if (_readOffset < _content.size()) { qint64 readSize = qMin(maxSize, _content.size() - _readOffset); memcpy(data, _content.constData() + _readOffset, readSize); @@ -44,7 +44,7 @@ qint64 QmlAtpReply::readData(char* data, qint64 maxSize) { } } -void QmlAtpReply::handleRequestFinish() { +void AtpReply::handleRequestFinish() { Q_ASSERT(_resourceRequest->getState() == ResourceRequest::State::Finished); switch (_resourceRequest->getResult()) { diff --git a/libraries/networking/src/QmlAtpReply.h b/libraries/networking/src/AtpReply.h similarity index 76% rename from libraries/networking/src/QmlAtpReply.h rename to libraries/networking/src/AtpReply.h index a8f6dfde14..6ed5dd8fb8 100644 --- a/libraries/networking/src/QmlAtpReply.h +++ b/libraries/networking/src/AtpReply.h @@ -1,5 +1,5 @@ // -// QmlAtpReply.h +// AtpReply.h // libraries/networking/src // // Created by Zander Otavka on 8/4/16. @@ -9,19 +9,19 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // -#ifndef hifi_QmlAtpReply_h -#define hifi_QmlAtpReply_h +#ifndef hifi_AtpReply_h +#define hifi_AtpReply_h #include #include #include "AssetResourceRequest.h" -class QmlAtpReply : public QNetworkReply { +class AtpReply : public QNetworkReply { Q_OBJECT public: - QmlAtpReply(const QUrl& url, QObject* parent = Q_NULLPTR); - ~QmlAtpReply(); + AtpReply(const QUrl& url, QObject* parent = Q_NULLPTR); + ~AtpReply(); qint64 bytesAvailable() const override; void abort() override { } bool isSequential() const override { return true; } @@ -37,4 +37,4 @@ private: qint64 _readOffset { 0 }; }; -#endif // hifi_QmlAtpReply_h +#endif // hifi_AtpReply_h diff --git a/libraries/networking/src/NetworkAccessManager.cpp b/libraries/networking/src/NetworkAccessManager.cpp index 97171d5ad7..78a05677fd 100644 --- a/libraries/networking/src/NetworkAccessManager.cpp +++ b/libraries/networking/src/NetworkAccessManager.cpp @@ -1,6 +1,6 @@ // // NetworkAccessManager.cpp -// +// libraries/networking/src // // Created by Clement on 7/1/14. // Copyright 2014 High Fidelity, Inc. @@ -11,6 +11,7 @@ #include +#include "AtpReply.h" #include "NetworkAccessManager.h" QThreadStorage networkAccessManagers; @@ -23,3 +24,13 @@ QNetworkAccessManager& NetworkAccessManager::getInstance() { return *networkAccessManagers.localData(); } + +QNetworkReply* NetworkAccessManager::createRequest(Operation operation, const QNetworkRequest& request, QIODevice* device) { + if (request.url().scheme() == "atp" && operation == GetOperation) { + return new AtpReply(request.url()); + //auto url = request.url().toString(); + //return QNetworkAccessManager::createRequest(operation, request, device); + } else { + return QNetworkAccessManager::createRequest(operation, request, device); + } +} diff --git a/libraries/networking/src/NetworkAccessManager.h b/libraries/networking/src/NetworkAccessManager.h index c4b435adb6..1679ed081c 100644 --- a/libraries/networking/src/NetworkAccessManager.h +++ b/libraries/networking/src/NetworkAccessManager.h @@ -1,6 +1,6 @@ // // NetworkAccessManager.h -// +// libraries/networking/src // // Created by Clement on 7/1/14. // Copyright 2014 High Fidelity, Inc. @@ -13,12 +13,17 @@ #define hifi_NetworkAccessManager_h #include +#include +#include /// Wrapper around QNetworkAccessManager to restrict at one instance by thread -class NetworkAccessManager : public QObject { +class NetworkAccessManager : public QNetworkAccessManager { Q_OBJECT public: static QNetworkAccessManager& getInstance(); +protected: + NetworkAccessManager(QObject* parent = Q_NULLPTR) : QNetworkAccessManager(parent) {} + virtual QNetworkReply* createRequest(Operation op, const QNetworkRequest& request, QIODevice* device = Q_NULLPTR) override; }; #endif // hifi_NetworkAccessManager_h \ No newline at end of file diff --git a/libraries/networking/src/OAuthNetworkAccessManager.h b/libraries/networking/src/OAuthNetworkAccessManager.h index acfd52e18f..434d9b7c75 100644 --- a/libraries/networking/src/OAuthNetworkAccessManager.h +++ b/libraries/networking/src/OAuthNetworkAccessManager.h @@ -12,12 +12,13 @@ #ifndef hifi_OAuthNetworkAccessManager_h #define hifi_OAuthNetworkAccessManager_h -#include +#include "NetworkAccessManager.h" -class OAuthNetworkAccessManager : public QNetworkAccessManager { +class OAuthNetworkAccessManager : public NetworkAccessManager { public: static OAuthNetworkAccessManager* getInstance(); protected: + OAuthNetworkAccessManager(QObject* parent = Q_NULLPTR) : NetworkAccessManager(parent) { } virtual QNetworkReply* createRequest(Operation op, const QNetworkRequest& req, QIODevice* outgoingData = 0); }; diff --git a/libraries/networking/src/QmlNetworkAccessManager.cpp b/libraries/networking/src/QmlNetworkAccessManager.cpp deleted file mode 100644 index 575bc02f8c..0000000000 --- a/libraries/networking/src/QmlNetworkAccessManager.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// -// QmlNetworkAccessManager.cpp -// libraries/networking/src -// -// Created by Zander Otavka on 8/4/16. -// 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 - -#include "QmlAtpReply.h" -#include "QmlNetworkAccessManager.h" - -QNetworkAccessManager* QmlNetworkAccessManagerFactory::create(QObject* parent) { - return new QmlNetworkAccessManager(parent); -} - -QNetworkReply* QmlNetworkAccessManager::createRequest(Operation operation, const QNetworkRequest& request, QIODevice* device) { - if (request.url().scheme() == "atp" && operation == GetOperation) { - return new QmlAtpReply(request.url()); - //auto url = request.url().toString(); - //return QNetworkAccessManager::createRequest(operation, request, device); - } else { - return QNetworkAccessManager::createRequest(operation, request, device); - } -} diff --git a/libraries/networking/src/QmlNetworkAccessManager.h b/libraries/networking/src/QmlNetworkAccessManager.h deleted file mode 100644 index 059d0ebba0..0000000000 --- a/libraries/networking/src/QmlNetworkAccessManager.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// QmlNetworkAccessManager.h -// libraries/networking/src -// -// Created by Zander Otavka on 8/4/16. -// 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_QmlNetworkAccessManager_h -#define hifi_QmlNetworkAccessManager_h - -#include -#include -#include - -class QmlNetworkAccessManagerFactory : public QQmlNetworkAccessManagerFactory { -public: - QNetworkAccessManager* create(QObject* parent); -}; - - -class QmlNetworkAccessManager : public QNetworkAccessManager { - Q_OBJECT -public: - QmlNetworkAccessManager(QObject* parent = Q_NULLPTR) : QNetworkAccessManager(parent) { } -protected: - QNetworkReply* createRequest(Operation op, const QNetworkRequest& request, QIODevice* device = Q_NULLPTR); -}; - -#endif // hifi_QmlNetworkAccessManager_h