diff options
author | Petr Mrázek <peterix@gmail.com> | 2016-05-28 19:54:17 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2016-06-05 23:55:39 +0200 |
commit | a1abbd9e05c80584d831b1d12c27c5f7d731cece (patch) | |
tree | 3324eaf37efa228e07a0e3136952673f0bc3405a /api/logic/status | |
parent | a750f6e63c783730380c19788deff2acfb3f4836 (diff) | |
download | PrismLauncher-a1abbd9e05c80584d831b1d12c27c5f7d731cece.tar.gz PrismLauncher-a1abbd9e05c80584d831b1d12c27c5f7d731cece.tar.bz2 PrismLauncher-a1abbd9e05c80584d831b1d12c27c5f7d731cece.zip |
NOISSUE refactor *Download into more, smaller pieces
* Download is now Download.
* Download uses Sink subclasses to process various events.
* Validators can be used to further customize the Sink behaviour.
Diffstat (limited to 'api/logic/status')
-rw-r--r-- | api/logic/status/StatusChecker.cpp | 11 | ||||
-rw-r--r-- | api/logic/status/StatusChecker.h | 24 |
2 files changed, 15 insertions, 20 deletions
diff --git a/api/logic/status/StatusChecker.cpp b/api/logic/status/StatusChecker.cpp index 13cac037..d09c9976 100644 --- a/api/logic/status/StatusChecker.cpp +++ b/api/logic/status/StatusChecker.cpp @@ -43,7 +43,7 @@ void StatusChecker::reloadStatus() // qDebug() << "Reloading status."; NetJob* job = new NetJob("Status JSON"); - job->addNetAction(ByteArrayDownload::make(URLConstants::MOJANG_STATUS_URL)); + job->addNetAction(Net::Download::makeByteArray(URLConstants::MOJANG_STATUS_URL, &dataSink)); QObject::connect(job, &NetJob::succeeded, this, &StatusChecker::statusDownloadFinished); QObject::connect(job, &NetJob::failed, this, &StatusChecker::statusDownloadFailed); m_statusNetJob.reset(job); @@ -55,15 +55,10 @@ void StatusChecker::statusDownloadFinished() { qDebug() << "Finished loading status JSON."; m_statusEntries.clear(); - QByteArray data; - { - ByteArrayDownloadPtr dl = std::dynamic_pointer_cast<ByteArrayDownload>(m_statusNetJob->first()); - data = dl->m_data; - m_statusNetJob.reset(); - } + m_statusNetJob.reset(); QJsonParseError jsonError; - QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &jsonError); + QJsonDocument jsonDoc = QJsonDocument::fromJson(dataSink, &jsonError); if (jsonError.error != QJsonParseError::NoError) { diff --git a/api/logic/status/StatusChecker.h b/api/logic/status/StatusChecker.h index c1a54dba..452248f4 100644 --- a/api/logic/status/StatusChecker.h +++ b/api/logic/status/StatusChecker.h @@ -26,35 +26,35 @@ class MULTIMC_LOGIC_EXPORT StatusChecker : public QObject { Q_OBJECT -public: +public: /* con/des */ StatusChecker(); +public: /* methods */ QString getLastLoadErrorMsg() const; - bool isLoadingStatus() const; - QMap<QString, QString> getStatusEntries() const; - void Q_SLOT reloadStatus(); - -protected: - virtual void timerEvent(QTimerEvent *); - signals: void statusLoading(bool loading); void statusChanged(QMap<QString, QString> newStatus); +public slots: + void reloadStatus(); + +protected: /* methods */ + virtual void timerEvent(QTimerEvent *); + protected slots: void statusDownloadFinished(); void statusDownloadFailed(QString reason); + void succeed(); + void fail(const QString& errorMsg); -protected: +protected: /* data */ QMap<QString, QString> m_prevEntries; QMap<QString, QString> m_statusEntries; NetJobPtr m_statusNetJob; QString m_lastLoadError; - - void Q_SLOT succeed(); - void Q_SLOT fail(const QString& errorMsg); + QByteArray dataSink; }; |