#include <QtCore>
#include <QtNetwork>
+#include <QtXml>
#include "http_fetcher.hpp"
QString _isotime;
QString _localtime;
+ bool _valid;
+
+protected:
+ float getFloatNode (const QDomElement& elem, const char* node, float def);
+ int getIntNode (const QDomElement& elem, const char* node, int def);
+ QString getStringNode (const QDomElement& elem, const char* node) throw (const QString&);
+ QDateTime getTSNode (const QDomElement& elem, const char* node) throw (const QString&);
+
+ void setValid (bool new_val)
+ { _valid = new_val; };
+
public:
- TrafficInfo ();
+ TrafficInfo ()
+ : _valid (false)
+ {};
+
+ TrafficInfo (const QDomElement& elem) throw (const QString&);
+
+ bool valid () const
+ { return _valid; };
+
+ QString localtime () const
+ { return _localtime; };
+
+ QDateTime ts () const
+ { return _ts; };
};
{
public:
enum light_color {
+ Unknown,
Red,
Yellow,
Green
private:
float _level_raw;
- quint8 _level;
+ int _level;
light_color _color;
- quint8 _tend;
+ int _tend;
QString _hint;
public:
- ExtendedTrafficInfo ();
+ ExtendedTrafficInfo ()
+ : TrafficInfo ()
+ {};
+
+ ExtendedTrafficInfo (const QDomElement& elem) throw (const QString&);
+
+ int level () const
+ { return _level; };
+
+ int tend () const
+ { return _tend; };
+
+ QString hint () const
+ { return _hint; };
+
+ ExtendedTrafficInfo::light_color color () const
+ { return _color; };
};
HttpFetcher _fetcher;
+ bool parse_traffic_data (const QString& xml);
+
private slots:
void fetchDone (const QByteArray& data);
Traffic ();
void update ();
+
+ QDateTime ts () const
+ { return _ts; };
+
+ TrafficInfo lookup (const QString &id) const;
+ ExtendedTrafficInfo lookup_ext (const QString &id) const;
};