|
1 #ifndef DATATRANSFERER_H |
|
2 #define DATATRANSFERER_H |
|
3 |
|
4 #include <QObject> |
|
5 #include <QString> |
|
6 #include <QNetworkReply> |
|
7 #include <QNetworkAccessManager> |
|
8 #include <QTcpSocket> |
|
9 #include <QHttp> |
|
10 #include <QDebug> |
|
11 |
|
12 // Interface-class for data transferring object |
|
13 |
|
14 class DataTransferer : public QObject |
|
15 { |
|
16 Q_OBJECT |
|
17 public: |
|
18 explicit DataTransferer(QObject *parent = 0); |
|
19 virtual ~DataTransferer() { |
|
20 if (m_dataTransferOngoing) { |
|
21 qDebug("BearerEx Warning: dataobjects transfer was ongoing when destroyed."); |
|
22 } |
|
23 } |
|
24 virtual bool transferData() = 0; |
|
25 bool dataTransferOngoing(); |
|
26 |
|
27 signals: |
|
28 void finished(quint32 errorCode, qint64 dataReceived, QString errorType); |
|
29 |
|
30 public slots: |
|
31 |
|
32 protected: |
|
33 bool m_dataTransferOngoing; |
|
34 }; |
|
35 |
|
36 |
|
37 // Specializations/concrete classes |
|
38 |
|
39 class DataTransfererQTcp : public DataTransferer |
|
40 { |
|
41 Q_OBJECT |
|
42 public: |
|
43 DataTransfererQTcp(QObject* parent = 0); |
|
44 ~DataTransfererQTcp(); |
|
45 |
|
46 virtual bool transferData(); |
|
47 |
|
48 public slots: |
|
49 void readyRead(); |
|
50 void error(QAbstractSocket::SocketError socketError); |
|
51 void connected(); |
|
52 |
|
53 private: |
|
54 QTcpSocket m_qsocket; |
|
55 }; |
|
56 |
|
57 class DataTransfererQNam : public DataTransferer |
|
58 { |
|
59 Q_OBJECT |
|
60 public: |
|
61 DataTransfererQNam(QObject* parent = 0); |
|
62 ~DataTransfererQNam(); |
|
63 |
|
64 virtual bool transferData(); |
|
65 |
|
66 public slots: |
|
67 void replyFinished(QNetworkReply* reply); |
|
68 |
|
69 private: |
|
70 QNetworkAccessManager m_qnam; |
|
71 }; |
|
72 |
|
73 class DataTransfererQHttp : public DataTransferer |
|
74 { |
|
75 Q_OBJECT |
|
76 public: |
|
77 DataTransfererQHttp(QObject* parent = 0); |
|
78 ~DataTransfererQHttp(); |
|
79 |
|
80 virtual bool transferData(); |
|
81 |
|
82 public slots: |
|
83 void done(bool error); |
|
84 |
|
85 private: |
|
86 QHttp m_qhttp; |
|
87 }; |
|
88 |
|
89 #endif // DATATRANSFERER_H |