diff --git a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/diagnostics.cpp b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/diagnostics.cpp index 8573cfbbc..33bbbcc58 100644 --- a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/diagnostics.cpp +++ b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/diagnostics.cpp @@ -26,6 +26,6 @@ */ #include "diagnostics.h" -diagnostics::diagnostics():networkerrors(0),emptytiles(0),timeouts(0),runningThreads(0) +diagnostics::diagnostics():networkerrors(0),emptytiles(0),timeouts(0),runningThreads(0),tilesFromMem(0),tilesFromNet(0),tilesFromDB(0) { } diff --git a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/diagnostics.h b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/diagnostics.h index d29ecf53c..113faef19 100644 --- a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/diagnostics.h +++ b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/diagnostics.h @@ -34,9 +34,13 @@ struct diagnostics int emptytiles; int timeouts; int runningThreads; + int tilesFromMem; + int tilesFromNet; + int tilesFromDB; QString toString() { - return QString("Network errors:%1\nEmpty Tiles:%2\nTimeOuts:%3\nRunningThreads:%4").arg(networkerrors).arg(emptytiles).arg(timeouts).arg(runningThreads); + return QString("Network errors:%1\nEmpty Tiles:%2\nTimeOuts:%3\nRunningThreads:%4\nTilesFromMem:%5\nTilesFromNet:%6\nTilesFromDB:%7").arg(networkerrors).arg(emptytiles).arg(timeouts).arg(runningThreads).arg(tilesFromMem).arg(tilesFromNet).arg(tilesFromDB); + ; } }; diff --git a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/opmaps.cpp b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/opmaps.cpp index dfc15598b..b2db6747d 100644 --- a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/opmaps.cpp +++ b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/opmaps.cpp @@ -70,6 +70,12 @@ namespace core { qDebug()<<"Try Tile from memory:Size="<ImageCache.GetImageFromCache(type,pos,zoom); if(!ret.isEmpty()) { + errorvars.lock(); + ++diag.tilesFromDB; + errorvars.unlock(); #ifdef DEBUG_GMAPS qDebug()<<"Tile found in Database"; #endif //DEBUG_GMAPS @@ -228,6 +237,9 @@ namespace core { #ifdef DEBUG_GMAPS qDebug()<<"Received Tile from the Internet"; #endif //DEBUG_GMAPS + errorvars.lock(); + ++diag.tilesFromNet; + errorvars.unlock(); if (useMemoryCache) { #ifdef DEBUG_GMAPS diff --git a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/pureimagecache.cpp b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/pureimagecache.cpp index 16567b480..99690a94d 100644 --- a/ground/openpilotgcs/src/libs/opmapcontrol/src/core/pureimagecache.cpp +++ b/ground/openpilotgcs/src/libs/opmapcontrol/src/core/pureimagecache.cpp @@ -194,11 +194,11 @@ namespace core { qlonglong id=++ConnCounter; Mcounter.unlock(); { - Mcounter.lock(); QSqlDatabase cn; cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id)); QString db=gtilecache+"Data.qmdb"; cn.setDatabaseName(db); + cn.setConnectOptions("QSQLITE_ENABLE_SHARED_CACHE"); if(cn.open()) { { @@ -220,7 +220,6 @@ namespace core { } cn.close(); } - Mcounter.unlock(); } QSqlDatabase::removeDatabase(QString::number(id)); return true; @@ -239,12 +238,12 @@ namespace core { { QString db=dir+"Data.qmdb"; { - Mcounter.lock(); QSqlDatabase cn; cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id)); cn.setDatabaseName(db); + cn.setConnectOptions("QSQLITE_ENABLE_SHARED_CACHE"); if(cn.open()) { { @@ -258,7 +257,6 @@ namespace core { } cn.close(); } - Mcounter.unlock(); } } QSqlDatabase::removeDatabase(QString::number(id)); @@ -280,6 +278,7 @@ namespace core { Mcounter.unlock(); cn = QSqlDatabase::addDatabase("QSQLITE",QString::number(id)); cn.setDatabaseName(db); + cn.setConnectOptions("QSQLITE_ENABLE_SHARED_CACHE"); if(cn.open()) { {