]> git.sur5r.net Git - minitube/blobdiff - lib/http/src/http.h
New upstream version 3.4
[minitube] / lib / http / src / http.h
index 23f3754fa741ee11694200a2b1ea10a0600b1416..8ae56cf764b254c197d9bec6b69dedfc14a882fb 100644 (file)
@@ -3,40 +3,8 @@
 
 #include <QtNetwork>
 
-class HttpRequest {
-public:
-    HttpRequest() : operation(QNetworkAccessManager::GetOperation), offset(0) {}
-    QUrl url;
-    QNetworkAccessManager::Operation operation;
-    QByteArray body;
-    uint offset;
-    QMap<QByteArray, QByteArray> headers;
-};
-
-class HttpReply : public QObject {
-    Q_OBJECT
-
-public:
-    HttpReply(QObject *parent = nullptr) : QObject(parent) {}
-    virtual QUrl url() const = 0;
-    virtual int statusCode() const = 0;
-    int isSuccessful() const { return statusCode() >= 200 && statusCode() < 300; }
-    virtual QString reasonPhrase() const { return QString(); }
-    virtual const QList<QNetworkReply::RawHeaderPair> headers() const {
-        return QList<QNetworkReply::RawHeaderPair>();
-    }
-    virtual QByteArray header(const QByteArray &headerName) const {
-        Q_UNUSED(headerName);
-        return QByteArray();
-    }
-
-    virtual QByteArray body() const = 0;
-
-signals:
-    void data(const QByteArray &bytes);
-    void error(const QString &message);
-    void finished(const HttpReply &reply);
-};
+#include "httpreply.h"
+#include "httprequest.h"
 
 class Http {
 public:
@@ -53,6 +21,9 @@ public:
     void setReadTimeout(int timeout);
     int getReadTimeout() { return readTimeout; }
 
+    int getMaxRetries() const;
+    void setMaxRetries(int value);
+
     QNetworkReply *networkReply(const HttpRequest &req);
     virtual HttpReply *request(const HttpRequest &req);
     HttpReply *
@@ -68,38 +39,7 @@ public:
 private:
     QMap<QByteArray, QByteArray> requestHeaders;
     int readTimeout;
-};
-
-class NetworkHttpReply : public HttpReply {
-    Q_OBJECT
-
-public:
-    NetworkHttpReply(const HttpRequest &req, Http &http);
-    QUrl url() const;
-    int statusCode() const;
-    QString reasonPhrase() const;
-    const QList<QNetworkReply::RawHeaderPair> headers() const;
-    QByteArray header(const QByteArray &headerName) const;
-    QByteArray body() const;
-
-private slots:
-    void replyFinished();
-    void replyError(QNetworkReply::NetworkError);
-    void downloadProgress(qint64 bytesReceived, qint64 bytesTotal);
-    void readTimeout();
-
-private:
-    void setupReply();
-    QString errorMessage();
-    void emitError();
-    void emitFinished();
-
-    Http &http;
-    HttpRequest req;
-    QNetworkReply *networkReply;
-    QTimer *readTimeoutTimer;
-    int retryCount;
-    QByteArray bytes;
+    int maxRetries;
 };
 
 #endif // HTTP_H