Abort current connection (if any) with new request.
[yandex-traffic] / traffic.cpp
index 033d083..05d5adf 100644 (file)
@@ -2,6 +2,7 @@
 #include <QtXml>
 
 #include "traffic.hpp"
+#include "log.hpp"
 
 
 // --------------------------------------------------
@@ -82,6 +83,12 @@ QDateTime TrafficInfo::getTSNode (const QDomElement& elem, const char* node) thr
 }
 
 
+void TrafficInfo::dump ()
+{
+    Log::instance ()->add (QString ("TrafficInfo (%1): time = %2").arg (_valid ? "valid" : "not valid").arg (_localtime));
+}
+
+
 // --------------------------------------------------
 // ExtendedTrafficInfo
 // --------------------------------------------------
@@ -110,6 +117,13 @@ ExtendedTrafficInfo::ExtendedTrafficInfo (const QDomElement& elem) throw (const
 }
 
 
+void ExtendedTrafficInfo::dump ()
+{
+    TrafficInfo::dump ();
+    Log::instance ()->add (QString ("ExtTrafficInfo: level = %1, hint = %2").arg (_level).arg (_hint));
+}
+
+
 // --------------------------------------------------
 // Traffic
 // --------------------------------------------------
@@ -120,26 +134,26 @@ Traffic::Traffic ()
              SLOT (fetchDone (const QByteArray&)));
 }
 
+
 // Perform asyncronous refresh of traffic information. If another update
 // request is in progress, new is discarded. If update request finished
 // successfully, updated() signal called.
 void Traffic::update ()
 {
-    if (_fetcher.busy ())
-        return;
-
+    Log::instance ()->add ("Traffic::update: Request status download");
     _fetcher.fetch ("http://trf.maps.yandex.net/trf/stat.xml");
 }
 
 
 void Traffic::fetchDone (const QByteArray& data)
 {
-    printf ("Got %d bytes of data\n", data.size ());
     // parse data got
-    if (parse_traffic_data (QString::fromUtf8 (data.data ())))
+    if (parse_traffic_data (QString::fromUtf8 (data.data ()))) {
+        Log::instance ()->add ("Traffic::fetchDone: data parsed successfully");
         updated ();
+    }
     else
-        printf ("Parse failed\n");
+        Log::instance ()->add ("Traffic::fetchDone: data parse error");
 }
 
 
@@ -176,7 +190,6 @@ bool Traffic::parse_traffic_data (const QString& xml)
         e = n.toElement ();
         if (!e.isNull () && e.tagName () == "region") {
             s = e.attribute ("id");
-            printf ("Process region %s\n", s.toUtf8 ().data ());
             try {
                // Check that it is an extended traffic info
                 if (!e.firstChildElement ("level").isNull ()) {
@@ -191,7 +204,6 @@ bool Traffic::parse_traffic_data (const QString& xml)
                 }
             }
             catch (const QString& msg) {
-                printf ("Region %s parse failed: %s\n", s.toUtf8 ().data (), msg.toUtf8 ().data ());
             }
         }
         n = n.nextSibling ();
@@ -225,3 +237,4 @@ ExtendedTrafficInfo Traffic::lookup_ext (const QString &id) const
     else
         return it.value ();
 }
+