server-sdk/src/serversdk/requestmanager.h

44 lines
987 B
C++

#pragma once
#include "logger.h"
#include "request.h"
#include <QtNetwork>
#include <memory>
namespace serversdk {
/**
* @brief Will download only ONE ITEM at a time
*/
class RequestManager : public QObject
{
Q_OBJECT;
friend class SoapTest;
public:
explicit RequestManager(QObject *parent = nullptr);
bool processRequest(const std::shared_ptr<Request>& request);
bool ignoreSsl() const;
void setIgnoreSsl(bool ignoreSsl);
private:
Q_SLOT void sslErrors(QNetworkReply *reply, const QList<QSslError> &sslErrors);
Q_SLOT void downloadProgress(qint64 bytesReceived, qint64 bytesTotal);
Q_SLOT void replyError(QNetworkReply::NetworkError code);
signals:
void downloadFinished(std::shared_ptr<Request> request);
void progresss(qint64 bytesReceived, qint64 bytesTotal);
private:
QNetworkAccessManager mNetworkAccessManager;
QMap<QNetworkReply*, std::shared_ptr<Request>> mRequestMap;
bool mIgnoreSsl = false;
};
} // core