#include "network.h" #include <QEventLoop> #include <QNetworkAccessManager> #include <QNetworkRequest> #include <QNetworkReply> namespace utils { Network::Network(const bool &async, QObject *parent) : QObject(parent), async_(async) { manager_ = new QNetworkAccessManager(this); connect(manager_, &QNetworkAccessManager::finished, this, &utils::Network::finished); if (!async_) { eventLoop_ = new QEventLoop(); connect(manager_, &QNetworkAccessManager::finished, eventLoop_, &QEventLoop::quit); } } Network::~Network() { manager_->deleteLater(); if (!async_) { delete eventLoop_; } } QNetworkReply *Network::head(const QUrl &uri) { QNetworkReply *reply = manager_->head(QNetworkRequest(uri)); if (!async_) { eventLoop_->exec(); } return reply; } QNetworkReply *Network::get(const QUrl &uri) { QNetworkReply *reply = manager_->get(QNetworkRequest(uri)); connect(reply, &QNetworkReply::downloadProgress, this, &utils::Network::downloadProgress); if (!async_) { eventLoop_->exec(); } return reply; } } // namespace utils