Ref T308, performance optimized fromDatabaseJsonCaching

* maps for id/object
* caching fromDatabaseJsonCaching
* fixed CAircraftModel::fromDatabaseJson wrong prefix
This commit is contained in:
Klaus Basan
2018-08-29 02:55:28 +02:00
parent c43fba9abd
commit 260585e35c
14 changed files with 214 additions and 14 deletions

View File

@@ -22,6 +22,7 @@
#include <QJsonValue>
#include <QList>
#include <QMultiMap>
#include <QMap>
#include <tuple>
using namespace BlackMisc::Network;
@@ -1070,7 +1071,7 @@ namespace BlackMisc
for (const CAircraftModel &model : *this)
{
CAircraftModel copy(model);
copy.normalizeFileNameForDb();
copy.normalizeFileNameForDb(); // strip full path
QJsonValue v(copy.toDatabaseJson());
array.append(v);
}
@@ -1163,5 +1164,19 @@ namespace BlackMisc
}
return stats;
}
CAircraftModelList CAircraftModelList::fromDatabaseJsonCaching(const QJsonArray &array)
{
AircraftIcaoIdMap aircraftIcaos;
LiveryIdMap liveries;
DistributorIdMap distributors;
CAircraftModelList models;
for (const QJsonValue &value : array)
{
models.push_back(CAircraftModel::fromDatabaseJsonCaching(value.toObject(), aircraftIcaos, liveries, distributors));
}
return models;
}
} // namespace
} // namespace