Incorporated changes from bus project.
[ptas] / src / xmlparser.h
diff --git a/src/xmlparser.h b/src/xmlparser.h
new file mode 100644 (file)
index 0000000..a74a955
--- /dev/null
@@ -0,0 +1,40 @@
+#ifndef XMLPARSER_H
+#define XMLPARSER_H
+
+#include "routedata.h"
+
+#include <QList>
+#include <QByteArray>
+#include <QXmlStreamReader>
+
+class XmlParser
+{
+public:
+    XmlParser();
+
+    struct LocsData {
+        QString m_x;
+        QString m_y;
+        QString m_arrTime;
+        QString m_depTime;
+        QString m_name;
+    };
+
+    QPair<QString,QString> parseGeocode(const QByteArray &reply);
+    QList<RouteData> parseRouteData(const QByteArray &reply);
+
+    bool error() {
+        return m_error;
+    }
+
+private:
+    QList<XmlParser::LocsData> parseLocs(QXmlStreamReader &xml);
+    QList<LegData> parseLegs(QXmlStreamReader &xml);
+    QString parseJORECode(const QString &joreCode) const;
+    QString parseTime(const QString &time) const;
+    QString parseType(const QString &type) const;
+
+    bool m_error;
+};
+
+#endif // XMLPARSER_H