#include <QtCore/QSet>
#include <QtCore/QRegExp>
#include <QtCore/QUrl>
+#include <QtCore/QTimerEvent>
#include <QtNetwork/QHttp>
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
{
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();
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;
private:
- Q_DISABLE_COPY(Eniro);
+ Q_DISABLE_COPY(Eniro);
struct NumberData
{
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);
Error error_;
QString errorString_;
unsigned int maxResults_;
+ unsigned int timeout_;
+ int timerId_;
bool findNumber_;
typedef QMap <int, SearchData*> searchMap;
typedef QMap <int, NumberData*> numberMap;