Re-factored location search into separate GeocodingService class
[situare] / src / routing / routingservice.h
index ce7e72c..a38bb8c 100644 (file)
 
 #include <QObject>
 
-#include "route.h"
-
-class NetworkAccessManager;
 class QNetworkReply;
-class QNetworkRequest;
 class QUrl;
 
+class GeoCoordinate;
+class NetworkAccessManager;
+class Route;
+
 /**
 * @brief RoutingService class for communicating with CloudMade server
 *        and parsing routing data
 *
-* @author Henri Lampela
+* @author Henri Lampela - henri.lampela@ixonos.com
 * @author Sami Rämö - sami.ramo@ixonos.com
 */
 class RoutingService : public QObject
@@ -44,7 +44,6 @@ class RoutingService : public QObject
     Q_OBJECT
 
 public:
-
     /**
     * @brief Default constructor
     *
@@ -52,12 +51,6 @@ public:
     */
     RoutingService(QObject *parent = 0);
 
-    /**
-    * @brief Destructor
-    *
-    */
-    ~RoutingService();
-
 /*******************************************************************************
  * MEMBER FUNCTIONS AND SLOTS
  ******************************************************************************/
@@ -75,7 +68,7 @@ public slots:
     * @param from Start point of the route
     * @param to End point of the route
     */
-    void requestRoute(QPointF from, QPointF to);
+    void requestRoute(const GeoCoordinate &from, const GeoCoordinate &to);
 
 private:
     /**
@@ -86,6 +79,12 @@ private:
     void parseRouteData(const QByteArray &jsonReply);
 
     /**
+    * @brief Request authorization token
+    *
+    */
+    void requestAuthorizationToken();
+
+    /**
     * @brief Sends http request
     *
     * @param url destination
@@ -96,7 +95,6 @@ private:
  * SIGNALS
  ******************************************************************************/
 signals:
-
     /**
     * @brief Signals error
     *
@@ -110,15 +108,16 @@ signals:
     *
     * @param route Route item containing parsed route details
     */
-    void routeParsed(Route route);
+    void routeParsed(Route &route);
 
 /*******************************************************************************
  * DATA MEMBERS
  ******************************************************************************/
 private:
-    QList<QNetworkReply *> m_currentRequests;   ///< List of current http requests
+    QString m_pendingRequest;                   ///< Placeholder for pending route request
+    QString m_token;                            ///< Placeholder for authentication token
 
-    NetworkAccessManager *m_networkManager;    ///< Pointer to QNetworkAccessManager
+    NetworkAccessManager *m_networkManager;     ///< Pointer to QNetworkAccessManager
 };
 
 #endif // ROUTINGSERVICE_H