]> git.sur5r.net Git - minitube/blob - src/networkaccess.h
Imported Upstream version 2.0
[minitube] / src / networkaccess.h
1 #ifndef NETWORKACCESS_H
2 #define NETWORKACCESS_H
3
4 #include <QtCore>
5 #include <QtNetwork>
6
7 namespace The {
8     QNetworkAccessManager* networkAccessManager();
9 }
10
11 class NetworkReply : public QObject {
12
13     Q_OBJECT
14
15 public:
16     NetworkReply(QNetworkReply* networkReply);
17     QNetworkReply* getNetworkReply() { return networkReply; }
18
19 signals:
20     void data(QByteArray);
21     void error(QNetworkReply*);
22     void finished(QNetworkReply*);
23
24 private slots:
25     void finished();
26     void requestError(QNetworkReply::NetworkError);
27     void downloadProgress(qint64 bytesReceived, qint64 bytesTotal);
28     void readTimeout();
29
30 private:
31     void setupReply();
32     QNetworkReply *networkReply;
33     QTimer *readTimeoutTimer;
34     int retryCount;
35
36 };
37
38 class NetworkAccess : public QObject {
39
40     Q_OBJECT
41
42 public:
43     NetworkAccess(QObject* parent = 0);
44     QNetworkReply* request(QUrl url,
45                              int operation = QNetworkAccessManager::GetOperation,
46                              const QByteArray &body = QByteArray());
47     NetworkReply* get(QUrl url);
48     NetworkReply* head(QUrl url);
49     NetworkReply* post(QUrl url, const QMap<QString, QString>& params);
50
51 private:
52     QNetworkRequest buildRequest(QUrl url);
53
54 };
55
56 #endif // NETWORKACCESS_H