]> git.sur5r.net Git - minitube/blob - src/networkaccess.h
Imported Upstream version 1.4.1
[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
18 public slots:
19     void finished();
20     void requestError(QNetworkReply::NetworkError);
21     void downloadProgress(qint64 bytesReceived, qint64 bytesTotal);
22     void readTimeout();
23
24 signals:
25     void data(QByteArray);
26     void error(QNetworkReply*);
27     void finished(QNetworkReply*);
28
29 private:
30     QNetworkReply *networkReply;
31     QTimer *readTimeoutTimer;
32
33 };
34
35
36 class NetworkAccess : public QObject {
37
38     Q_OBJECT
39
40 public:
41     NetworkAccess( QObject* parent=0);
42     QNetworkReply* manualGet(QNetworkRequest request, int operation = QNetworkAccessManager::GetOperation);
43     QNetworkReply* simpleGet(QUrl url, int operation = QNetworkAccessManager::GetOperation);
44     NetworkReply* get(QUrl url);
45     NetworkReply* head(QUrl url);
46     QNetworkReply* syncGet(QUrl url);
47     QByteArray syncGetBytes(QUrl url);
48     QString syncGetString(QUrl url);
49
50 private slots:
51     void error(QNetworkReply::NetworkError);
52     void syncMetaDataChanged();
53     void syncFinished();
54
55 private:
56     QNetworkReply *networkReply;
57     bool working;
58
59 };
60
61 typedef QPointer<QObject> ObjectPointer;
62 Q_DECLARE_METATYPE(ObjectPointer)
63
64 #endif // NETWORKACCESS_H