Changed NetworkAccessManager to use Singleton.
authorJussi Laitinen <jupe@l3l7588.ixonos.local>
Wed, 26 May 2010 12:55:34 +0000 (15:55 +0300)
committerJussi Laitinen <jupe@l3l7588.ixonos.local>
Wed, 26 May 2010 12:55:34 +0000 (15:55 +0300)
src/engine/networkaccessmanager.cpp
src/engine/networkaccessmanager.h
src/map/mapengine.cpp
src/situareservice/situareservice.cpp
src/src.pro
tests/map/mapengine/mapengine.pro
tests/map/ownlocationitem/ownlocationitem.pro

index 8470bb1..63de236 100644 (file)
@@ -26,6 +26,8 @@
 #include "networkaccessmanager.h"
 #include "networkreply.h"
 
+NetworkAccessManager *NetworkAccessManager::m_instance = 0;
+
 NetworkAccessManager::NetworkAccessManager(QObject *parent)
     : QObject(parent),
       m_networkHandler(0),
@@ -41,6 +43,16 @@ NetworkAccessManager::NetworkAccessManager(QObject *parent)
             this, SLOT(downloadFinished(QNetworkReply*)));
 }
 
+NetworkAccessManager *NetworkAccessManager::instance(QObject *parent)
+{
+    qDebug() << __PRETTY_FUNCTION__;
+
+    if (!m_instance)
+        m_instance = new NetworkAccessManager(parent);
+
+    return m_instance;
+}
+
 void NetworkAccessManager::setCache(QAbstractNetworkCache *cache)
 {
     qDebug() << __PRETTY_FUNCTION__;
index 89ca041..4eed37c 100644 (file)
@@ -28,8 +28,6 @@
 #include <QNetworkRequest>
 #include <QAbstractNetworkCache>
 
-
-
 class NetworkHandler;
 class QNetworkAccessManager;
 
@@ -38,7 +36,7 @@ class NetworkAccessManager : public QObject
     Q_OBJECT
 
 public:
-    NetworkAccessManager(QObject *parent = 0);
+    static NetworkAccessManager *instance(QObject *parent = 0);
 
     QNetworkReply *get(const QNetworkRequest &request);
 
@@ -46,6 +44,9 @@ public:
 
     QAbstractNetworkCache *cache() const;
 
+protected:
+    NetworkAccessManager(QObject *parent = 0);
+
 private slots:
     void connected();
     void downloadFinished(QNetworkReply *reply);
@@ -54,6 +55,7 @@ signals:
     void finished(QNetworkReply *reply);
 
 private:
+    static NetworkAccessManager *m_instance;
     NetworkHandler *m_networkHandler;
     QNetworkAccessManager *m_networkAccessManagerPrivate;
     QList<QNetworkRequest> m_requestQueue;
index ffca1fa..a481e24 100644 (file)
@@ -56,7 +56,7 @@ MapEngine::MapEngine(QObject *parent)
 
     m_mapScene = new MapScene(this);
 
-    m_mapFetcher = new MapFetcher(new NetworkAccessManager(this), this);
+    m_mapFetcher = new MapFetcher(NetworkAccessManager::instance(this), this);
     connect(this, SIGNAL(fetchImage(int, int, int)),
             m_mapFetcher, SLOT(enqueueFetchMapImage(int, int, int)));
     connect(m_mapFetcher, SIGNAL(mapImageReceived(int, int, int, QPixmap)),
index 1b8928d..285fd4d 100644 (file)
@@ -37,10 +37,10 @@ SituareService::SituareService(QObject *parent)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    m_networkManager = new NetworkAccessManager(this);
+    m_networkManager = NetworkAccessManager::instance(this);
     connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), SLOT(requestFinished(QNetworkReply*)));
 
-    m_imageFetcher = new ImageFetcher(new NetworkAccessManager(this), this);
+    m_imageFetcher = new ImageFetcher(NetworkAccessManager::instance(this), this);
     connect(this, SIGNAL(fetchImage(QUrl)), m_imageFetcher, SLOT(fetchImage(QUrl)));
     connect(m_imageFetcher, SIGNAL(imageReceived(QUrl,QPixmap)), this,
             SLOT(imageReceived(QUrl, QPixmap)));
index e59eeab..d6fe687 100644 (file)
@@ -5,7 +5,8 @@ TARGET = ../situare
 TEMPLATE = app
 INCLUDEPATH += /usr/include/qjson /usr/include/glib-2.0 /usr/lib/glib-2.0/include
 LIBS += -lqjson
-CONFIG += icd2 qdbus
+CONFIG += icd2
+QT += dbus
 RESOURCES += ../images.qrc
 SOURCES += main.cpp \
     ui/mainwindow.cpp \
index db044cf..a1b6bb3 100644 (file)
@@ -2,11 +2,12 @@
 # Automatically generated by qmake (2.01a) Fri Mar 26 15:09:16 2010
 # #####################################################################
 CONFIG += qtestlib
-QT += network
+QT += network dbus
 TEMPLATE = app
 DEPENDPATH += .
 INCLUDEPATH += . \
-    ../../../src/
+    ../../../src/ \
+    /usr/include/glib-2.0 /usr/lib/glib-2.0/include
 
 # Input
 SOURCES += testmapengine.cpp \
@@ -22,7 +23,10 @@ SOURCES += testmapengine.cpp \
     ../../../src/map/baselocationitem.cpp \
     ../../../src/user/user.cpp \
     ../../../src/map/friendlocationitem.cpp \
-    ../../../src/map/gpslocationitem.cpp
+    ../../../src/map/gpslocationitem.cpp \
+    ../../../src/engine/networkaccessmanager.cpp \
+    ../../../src/engine/networkhandler.cpp \
+    ../../../src/engine/networkreply.cpp
 HEADERS += ../../../src/map/mapengine.h \
     ../../../src/map/mapscene.h \
     ../../../src/map/maptile.h \
@@ -36,5 +40,8 @@ HEADERS += ../../../src/map/mapengine.h \
     ../../../src/map/baselocationitem.h \
     ../../../src/user/user.h \
     ../../../src/map/friendlocationitem.h \
-    ../../../src/map/gpslocationitem.h
+    ../../../src/map/gpslocationitem.h \
+    ../../../src/engine/networkaccessmanager.h \
+    ../../../src/engine/networkhandler.h \
+    ../../../src/engine/networkreply.h
 DEFINES += QT_NO_DEBUG_OUTPUT
index 79f2237..97e42d8 100644 (file)
@@ -2,11 +2,12 @@
 # Automatically generated by qmake (2.01a) Tue Apr 27 14:52:31 2010
 # #####################################################################
 CONFIG += qtestlib
-QT += network
+QT += network dbus
 TEMPLATE = app
 DEPENDPATH += .
 INCLUDEPATH += . \
-    ../../../src/
+    ../../../src/ \
+    /usr/include/glib-2.0 /usr/lib/glib-2.0/include
 RESOURCES += ../../../images.qrc
 
 # Input
@@ -23,7 +24,10 @@ SOURCES += testownlocationitem.cpp \
     ../../../src/map/maptilerequest.cpp \
     ../../../src/map/frienditemshandler.cpp \
     ../../../src/map/friendgroupitem.cpp \
-    ../../../src/map/gpslocationitem.cpp
+    ../../../src/map/gpslocationitem.cpp \
+    ../../../src/engine/networkaccessmanager.cpp \
+    ../../../src/engine/networkhandler.cpp \
+    ../../../src/engine/networkreply.cpp
 HEADERS += ../../../src/map/ownlocationitem.h \
     ../../../src/map/mapscene.h \
     ../../../src/map/maptile.h \
@@ -37,5 +41,8 @@ HEADERS += ../../../src/map/ownlocationitem.h \
     ../../../src/map/maptilerequest.h \
     ../../../src/map/frienditemshandler.h \
     ../../../src/map/friendgroupitem.h \
-    ../../../src/map/gpslocationitem.h
+    ../../../src/map/gpslocationitem.h \
+    ../../../src/engine/networkaccessmanager.h \
+    ../../../src/engine/networkhandler.h \
+    ../../../src/engine/networkreply.h
 DEFINES += QT_NO_DEBUG_OUTPUT