diff options
author | Alex Wilson <alex.wilson@nokia.com> | 2012-03-19 14:08:35 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-20 04:45:57 +0100 |
commit | 908108424ad41425a257cfe2ad0d7c97f6822597 (patch) | |
tree | c5623b2def3820e42e6fa018ba027ec0f44c47da /src | |
parent | c282313c67508d24943932201dff9a3f3231fe3b (diff) | |
download | qtlocation-908108424ad41425a257cfe2ad0d7c97f6822597.tar.gz |
Remove old nokia-plugin disk cache, fairer server load-balancing
Using qrand() instead of the old modulo approach.
Change-Id: I9424f8a83cab189eed64e4017f2d7be50aec2283
Reviewed-by: David Laing <david.laing@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/geoservices/nokia/qgeomapreply_nokia.cpp | 14 | ||||
-rw-r--r-- | src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp | 52 | ||||
-rw-r--r-- | src/plugins/geoservices/nokia/qgeotilefetcher_nokia.h | 2 |
3 files changed, 4 insertions, 64 deletions
diff --git a/src/plugins/geoservices/nokia/qgeomapreply_nokia.cpp b/src/plugins/geoservices/nokia/qgeomapreply_nokia.cpp index 4e7b24f1..b249a194 100644 --- a/src/plugins/geoservices/nokia/qgeomapreply_nokia.cpp +++ b/src/plugins/geoservices/nokia/qgeomapreply_nokia.cpp @@ -104,20 +104,6 @@ void QGeoMapReplyNokia::networkFinished() if (m_reply->error() != QNetworkReply::NoError) return; -// QVariant fromCache = m_reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute); -// setCached(fromCache.toBool()); - -// if (!isCached()) { -// QAbstractNetworkCache *cache = m_reply->manager()->cache(); -// if (cache) { -// QNetworkCacheMetaData metaData = cache->metaData(m_reply->url()); -// QDateTime exp = QDateTime::currentDateTime(); -// exp = exp.addDays(14); -// metaData.setExpirationDate(exp); -// cache->updateMetaData(metaData); -// } -// } - setMapImageData(m_reply->readAll()); setMapImageFormat("png"); setFinished(true); diff --git a/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp b/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp index 5c4014c6..d6ad838e 100644 --- a/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp +++ b/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp @@ -54,24 +54,16 @@ #include <qgeotilecache_p.h> #include <QNetworkAccessManager> -#include <QNetworkDiskCache> #include <QNetworkProxy> #include <QSize> #include <QDir> #include <QUrl> +#include <QTime> #include <map> #define LARGE_TILE_DIMENSION 256 -#if defined(Q_OS_WINCE_WM) || defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6) -#undef DISK_CACHE_ENABLED -#else -#define DISK_CACHE_ENABLED 1 -#endif - -#undef DISK_CACHE_ENABLED - QT_BEGIN_NAMESPACE const char* MAPTILES_HOST = "1-4.maptile.lbs.ovi.com"; @@ -80,7 +72,6 @@ const char* MAPTILES_HOST_CN = "a-k.maptile.maps.svc.nokia.com.cn"; QGeoTileFetcherNokia::QGeoTileFetcherNokia(QGeoTiledMappingManagerEngine *engine) : QGeoTileFetcher(engine), m_networkManager(0), - m_cache(0), m_token(QGeoServiceProviderFactoryNokia::defaultToken), m_referer(QGeoServiceProviderFactoryNokia::defaultReferer), m_firstSubdomain(QChar::Null), @@ -94,6 +85,8 @@ bool QGeoTileFetcherNokia::init() { setHost(MAPTILES_HOST); + qsrand((uint)QTime::currentTime().msec()); + m_networkManager = new QNetworkAccessManager(this); if (m_parameters.contains("mapping.proxy")) { @@ -133,35 +126,6 @@ bool QGeoTileFetcherNokia::init() else if (m_parameters.contains("token")) { m_token = m_parameters.value("token").toString(); } -#ifdef DISK_CACHE_ENABLED - QString cacheDir; - if (parameters.contains("mapping.cache.directory")) - cacheDir = parameters.value("mapping.cache.directory").toString(); - - if (cacheDir.isEmpty()) { - cacheDir = QDir::temp().path()+"/maptiles"; - } - if (!cacheDir.isEmpty()) { - m_cache = new QNetworkDiskCache(this); - QDir dir; - dir.mkpath(cacheDir); - dir.setPath(cacheDir); - - m_cache->setCacheDirectory(dir.path()); - - if (parameters.contains("mapping.cache.size")) { - bool ok = false; - qint64 cacheSize = parameters.value("mapping.cache.size").toString().toLongLong(&ok); - if (ok) - m_cache->setMaximumCacheSize(cacheSize); - } - - if (m_cache->maximumCacheSize() > DISK_CACHE_MAX_SIZE) - m_cache->setMaximumCacheSize(DISK_CACHE_MAX_SIZE); - - m_networkManager->setCache(m_cache); - } -#endif #ifdef USE_CHINA_NETWORK_REGISTRATION connect(&m_networkInfo, SIGNAL(currentMobileCountryCodeChanged(int, const QString&)), @@ -192,25 +156,17 @@ QGeoTiledMapReply* QGeoTileFetcherNokia::getTileImage(const QGeoTileSpec &spec) QNetworkRequest netRequest((QUrl(rawRequest))); // The extra pair of parens disambiguates this from a function declaration netRequest.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true); -#ifdef DISK_CACHE_ENABLED - netRequest.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache); -#endif - QNetworkReply* netReply = m_networkManager->get(netRequest); QGeoTiledMapReply* mapReply = new QGeoMapReplyNokia(netReply, spec); - // TODO goes badly on linux - //qDebug() << "request: " << QString::number(reinterpret_cast<int>(mapReply), 16) << " " << request.row() << "," << request.column(); - // this one might work better. It follows defined behaviour, unlike reinterpret_cast - //qDebug("request: %p %i,%i @ %i", mapReply, request.row(), request.column(), request.zoomLevel()); return mapReply; } QString QGeoTileFetcherNokia::getRequestString(const QGeoTileSpec &spec) { const char subdomain = m_maxSubdomains ? m_firstSubdomain.toAscii() + - (spec.x() + spec.y()) % m_maxSubdomains : 0; + qrand() % m_maxSubdomains : 0; static const QString http("http://"); static const QString path("/maptiler/v2/maptile/newest/"); static const QChar dot('.'); diff --git a/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.h b/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.h index 64554ce0..26ca014c 100644 --- a/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.h +++ b/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.h @@ -67,7 +67,6 @@ class QSize; class QVariant; class QNetworkAccessManager; -class QNetworkDiskCache; class QGeoTiledMapReply; class QGeoTileSpec; @@ -112,7 +111,6 @@ private: bool isValidParameter(const QString& param); QNetworkAccessManager *m_networkManager; - QNetworkDiskCache *m_cache; QMap<QString, QVariant> m_parameters; QSize m_tileSize; QString m_host; |