ef376c8f0af2cc8ef10c7b0ba3732bf377745e6f
[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     };
27
28     void addNumbers(SearchData* searchData, QString const& data, int index);
29     void addOnlyNumber(SearchData* searchData, QString const& data, int index);
30     bool formatResult(QString& name, QString& number, QString& street, QString& city, Source::Result& result);
31     void emitRequestFinished(SearchData* data, bool error, int index);
32     int sendQuery(Source::SearchDetails const& details, int page = 1);
33
34     QList<SearchData*> pendingSearches_;
35
36     Q_DISABLE_COPY(Mobil1881);
37     virtual void handleHttpData(int id, QByteArray const& data);
38     virtual void handleHttpError(int id);
39 };
40
41 #endif // MOBIL1881_H