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