...
[jenirok] / src / common / mobil1881.h
1 #ifndef MOBIL1881_H
2 #define MOBIL1881_H
3
4 #include <QtCore/QList>
5 #include <QtCore/QSet>
6 #include <QtCore/QVector>
7 #include <QtCore/QByteArray>
8 #include "source.h"
9
10 class Mobil1881 : public Source
11 {
12 public:
13     Mobil1881(QObject* parent = 0);
14     ~Mobil1881();
15     virtual void abort();
16     virtual void search(Source::SearchDetails const& details);
17
18 private:
19
20     struct SearchData
21     {
22         QSet<int> searchIds;
23         Source::SearchDetails details;
24         QVector<Source::Result> results;
25         int currentPage;
26         int totalSearches;
27         int finishedSearches;
28     };
29
30     void addNumbers(SearchData* searchData, QString const& data, int index);
31     void addOnlyNumber(SearchData* searchData, QString const& data, int index);
32     bool formatResult(QString& name, QString& number, QString& street, QString& city, Source::Result& result);
33     void emitRequestFinished(SearchData* data, bool error, int index);
34     int sendQuery(Source::SearchDetails const& details, int page = 1);
35
36     QList<SearchData*> pendingSearches_;
37
38     Q_DISABLE_COPY(Mobil1881);
39     virtual void handleHttpData(int id, QByteArray const& data);
40     virtual void handleHttpError(int id);
41 };
42
43 #endif // MOBIL1881_H