Changelog updated.
[jenirok] / src / common / eniro.h
index af3d3b1..733508a 100644 (file)
@@ -25,6 +25,7 @@
 #include <QtCore/QSet>
 #include <QtCore/QRegExp>
 #include <QtCore/QUrl>
+#include <QtCore/QTimerEvent>
 #include <QtNetwork/QHttp>
 
 class Eniro: public QObject
@@ -34,10 +35,11 @@ class Eniro: public QObject
 public:
 
     enum Site {FI, SE, DK};
+    static const int SITE_COUNT = 3;
 
     enum SearchType {YELLOW_PAGES, PERSONS};
 
-    enum Error {NO_ERROR, CONNECTION_FAILURE, INVALID_LOGIN};
+    enum Error {NO_ERROR, CONNECTION_FAILURE, INVALID_LOGIN, TIMEOUT};
 
     struct Result
     {
@@ -59,10 +61,12 @@ public:
 
     struct SiteDetails
     {
-       QString name;
-       QString id;
+        QString name;
+        QString id;
     };
 
+    static unsigned int const DEFAULT_MAX_RESULTS = 30;
+
     Eniro(Site site, QObject *parent = 0);
 
     ~Eniro();
@@ -73,6 +77,7 @@ public:
     void setSite(Site);
     void setMaxResults(unsigned int value);
     void setFindNumber(bool value);
+    void setTimeout(unsigned int ms);
     bool search(SearchDetails const& details);
     void abort();
     Error error() const;
@@ -90,7 +95,7 @@ private slots:
 
 private:
 
-       Q_DISABLE_COPY(Eniro);
+    Q_DISABLE_COPY(Eniro);
 
     struct NumberData
     {
@@ -111,6 +116,8 @@ private:
     void loadNumber(int id, QString const& data);
     void getNumberForResult(int id, int index, SearchDetails const& details);
     void emitRequestFinished(int key, SearchData* data, bool error);
+    void resetTimeout();
+    void timerEvent(QTimerEvent *te);
     QString ucFirst(QString& string);
     QString& cleanUpNumber(QString& number);
     QString& stripTags(QString& string);
@@ -123,6 +130,8 @@ private:
     Error error_;
     QString errorString_;
     unsigned int maxResults_;
+    unsigned int timeout_;
+    int timerId_;
     bool findNumber_;
     typedef QMap <int, SearchData*> searchMap;
     typedef QMap <int, NumberData*> numberMap;