Small fix to Das Telefonbuch code.
[jenirok] / src / common / dasoertliche.h
diff --git a/src/common/dasoertliche.h b/src/common/dasoertliche.h
new file mode 100755 (executable)
index 0000000..159d609
--- /dev/null
@@ -0,0 +1,43 @@
+#ifndef DASTELEFONBUCH_H
+#define DASTELEFONBUCH_H
+
+#include <QtCore/QList>
+#include <QtCore/QSet>
+#include <QtCore/QVector>
+#include <QtCore/QByteArray>
+#include "source.h"
+
+class DasOertliche : public Source
+{
+public:
+    DasOertliche(QObject* parent = 0);
+    ~DasOertliche();
+    virtual void abort();
+    virtual void search(Source::SearchDetails const& details);
+
+private:
+
+    struct SearchData
+    {
+        QSet<int> searchIds;
+        Source::SearchDetails details;
+        QVector<Source::Result> results;
+        int currentPage;
+        int totalSearches;
+        int finishedSearches;
+    };
+
+    void addNumbers(SearchData* searchData, QString const& data, int index);
+    void addOnlyNumber(SearchData* searchData, QString const& data, int index);
+    bool formatResult(QString& name, QString& number, QString& street, QString& city, Source::Result& result);
+    void emitRequestFinished(SearchData* data, bool error, int index);
+    int sendQuery(Source::SearchDetails const& details, int page = 1);
+
+    QList<SearchData*> pendingSearches_;
+
+    Q_DISABLE_COPY(DasOertliche);
+    virtual void handleHttpData(int id, QByteArray const& data);
+    virtual void handleHttpError(int id);
+};
+
+#endif // DASTELEFONBUCH_H