diff --git a/src/blackmisc/datacache.cpp b/src/blackmisc/datacache.cpp index c55033e28..ab523e301 100644 --- a/src/blackmisc/datacache.cpp +++ b/src/blackmisc/datacache.cpp @@ -243,7 +243,7 @@ namespace BlackMisc if (! lock) { return; } m_cache->m_revision.writeNewRevision(baseline.toTimestampMap()); - auto msg = m_cache->saveToFiles(persistentStore(), values, baseline.toTimestampMapString()); + auto msg = m_cache->saveToFiles(persistentStore(), values, baseline.toTimestampMapString(values.keys())); msg.setCategories(this); CLogMessage::preformatted(msg); diff --git a/src/blackmisc/valuecache.cpp b/src/blackmisc/valuecache.cpp index 4456437b9..bb5c505c6 100644 --- a/src/blackmisc/valuecache.cpp +++ b/src/blackmisc/valuecache.cpp @@ -91,13 +91,13 @@ namespace BlackMisc return result; } - QString CValueCachePacket::toTimestampMapString() const + QString CValueCachePacket::toTimestampMapString(const QStringList &keys) const { - auto map = toTimestampMap(); QStringList result; - for (auto it = map.cbegin(); it != map.cend(); ++it) + for (const auto &key : keys) { - result.push_back(it.key() + "(" + QDateTime::fromMSecsSinceEpoch(it.value(), Qt::UTC).toString(Qt::ISODate) + ")"); + QString time = contains(key) ? QDateTime::fromMSecsSinceEpoch(value(key).second, Qt::UTC).toString(Qt::ISODate) : "no timestamp"; + result.push_back(key + "(" + time + ")"); } return result.join(","); } diff --git a/src/blackmisc/valuecache.h b/src/blackmisc/valuecache.h index 9383417e7..c62aed5f9 100644 --- a/src/blackmisc/valuecache.h +++ b/src/blackmisc/valuecache.h @@ -94,7 +94,7 @@ namespace BlackMisc QMap toTimestampMap() const; //! Return map of timestamps converted to string. - QString toTimestampMapString() const; + QString toTimestampMapString(const QStringList &keys) const; //! Remove value matching the given key, and return it in a separate packet. CValueCachePacket takeByKey(const QString &key);