a104ff1e216506024f8ce07f019467293aa18d2d
[irwi] / src / remote.h
1 #ifndef REMOTE_H
2 #define REMOTE_H
3
4 #include <QObject>
5 #include <QString>
6 #include <QNetworkReply>
7 #include <QNetworkAccessManager>
8
9 namespace Rating {
10     typedef bool Rating;
11     Rating Up = true;
12     Rating Down = false;
13 }
14
15 class Remote
16 {
17     Q_OBJECT
18 public:
19     Remote(const QString &name);
20     Remote(const QString &name, const QString &mfg,
21             int rating, int voteCount);
22
23     //getters
24     QString name()  const { return m_name; }
25     QString mfg()   const { return m_mfg; }
26     int rating()    const { return m_rating; }
27     int voteCount() const { return m_voteCount; }
28
29 public slots:
30     void saveToFile();
31     void updateInfo();
32     void sendRating(Rating::Rating);
33
34 signals:
35     void infoUpdated();
36
37 private:
38     QString m_name;
39     QString m_mfg;
40     int m_rating;
41     int m_voteCount;
42
43     QNetworkAccessManager m_infoNAM;
44     QNetworkAccessManager m_remoteNAM;
45     QNetworkAccessManager m_ratingNAM;
46
47     void init();
48     
49     void Remote::remoteDownloadFinished(QNetworkReply *reply);
50     void Remote::infoRequestFinished(QNetworkReply *reply);
51 };
52
53 #endif
54