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/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp | |
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/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp')
-rw-r--r-- | src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp | 52 |
1 files changed, 4 insertions, 48 deletions
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('.'); |