X-Git-Url: http://git.maemo.org/git/?p=jenirok;a=blobdiff_plain;f=src%2Fcommon%2Feniro.h;h=c1aab83f73904e51e3850d066f3e9a4af2cce786;hp=733508aa84ebc3a9964d50c73c712bc3bcd7fe7c;hb=40fda96f3253fec26e64d5165fcc75011b976a66;hpb=86fd9a58d85dc062736f8085d9d9898cec725e15 diff --git a/src/common/eniro.h b/src/common/eniro.h index 733508a..c1aab83 100644 --- a/src/common/eniro.h +++ b/src/common/eniro.h @@ -21,43 +21,22 @@ #include #include +#include #include #include #include #include #include #include +#include "source.h" -class Eniro: public QObject +class Eniro: public Source { Q_OBJECT 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, TIMEOUT}; - - struct Result - { - QString name; - QString street; - QString city; - QString number; - }; - - struct SearchDetails - { - QString query; - QString location; - SearchType type; - SearchDetails(QString const& query = "", - QString const& location = "", - SearchType type = PERSONS); - }; struct SiteDetails { @@ -65,34 +44,21 @@ public: QString id; }; - static unsigned int const DEFAULT_MAX_RESULTS = 30; - - Eniro(Site site, QObject *parent = 0); + static const int SITE_COUNT = 3; + Eniro(QObject *parent = 0); ~Eniro(); - void login(QString const& username, QString const& password); void logout(); - void testLogin(); 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; - const QString& errorString() const; + virtual void search(Source::SearchDetails const& details); + virtual void abort(); static QMap getSites(); static Site stringToSite(QString const& str); signals: - void resultAvailable(Eniro::Result const& result, Eniro::SearchDetails const& details); - void requestFinished(QVector const& results, Eniro::SearchDetails const& details, bool error); void loginStatus(bool success); -private slots: - void httpReady(int id, bool error); - private: Q_DISABLE_COPY(Eniro); @@ -105,41 +71,34 @@ private: struct SearchData { - SearchDetails details; - QVector results; + Source::SearchDetails details; + QVector results; unsigned int foundNumbers; unsigned int numbersTotal; }; + virtual void handleHttpData(int id, QByteArray const& data); + virtual void handleHttpError(int id); QUrl createUrl(QString const& query, QString const& location); void loadResults(int id, QString const& data); + void loadFinnishPersonResults(int id, QString const& data); 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); + void timerEvent(QTimerEvent *t); + bool isStreet(QString const& str); + QString& cleanUpString(QString& str); - QHttp http_; Site site_; + bool loggedIn_; QString username_; QString password_; - bool loggedIn_; - Error error_; - QString errorString_; - unsigned int maxResults_; - unsigned int timeout_; int timerId_; - bool findNumber_; typedef QMap searchMap; typedef QMap numberMap; - searchMap pendingSearches_; numberMap pendingNumberRequests_; QSet pendingLoginRequests_; - static QRegExp numberCleaner_; static QRegExp tagStripper_;