qtmobility/tests/bearerex/datatransferer.h
changeset 14 6fbed849b4f4
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
       
     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