25133f9695e606dd97e057312dd131a4a8bf14b8
[ptas] / zouba / qt / httpclient_p.cpp
1 #include "httpclient_p.h"
2
3 #include <QXmlStreamReader>
4 #include <QDebug>
5
6 HttpClientPrivate::HttpClientPrivate( QObject *parent )
7 {
8 }
9
10 HttpClientPrivate::~HttpClientPrivate()
11 {
12 }
13
14 RouteData HttpClientPrivate::parseReply( const QByteArray &reply )
15 {
16   RouteData retVal;
17
18   QXmlStreamReader xml( reply );
19
20   bool inLine = false;
21   bool inStop = false;
22   while ( !xml.atEnd() ) {
23     xml.readNext();
24     if ( xml.isStartElement() && xml.name() == "LINE" ) {
25       QString lineCode( xml.attributes().value("code").toString() );
26
27       retVal.lineCode = lineCode;
28
29       inLine = true;
30     } else
31     if ( inLine && xml.name() == "STOP" ) {
32       inStop = true;
33     } else
34     if ( inLine && inStop && xml.name() == "ARRIVAL" ) {
35       QString arrivalTime( xml.attributes().value("time").toString() );
36
37       retVal.arrivalTime = arrivalTime;
38
39       inLine = false;
40     } else
41     if ( xml.isEndElement() && xml.name() == "STOP" ) {
42       inStop = false;
43     } else
44     if ( xml.isEndElement() && xml.name() == "LINE" ) {
45       inLine = false;
46     }
47   }
48
49   if ( xml.hasError() ) {
50     qDebug() << "xml error";
51   }
52
53   return retVal;
54 }