MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / SaveNow

Method SaveNow

launcher/net/HttpMetaCache.cpp:253–295  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

251}
252
253void HttpMetaCache::SaveNow()
254{
255 if (m_index_file.isNull())
256 return;
257
258 qDebug() << "[HttpMetaCache]" << "Saving metacache with" << m_entries.size() << "entries";
259
260 QJsonObject toplevel;
261 Json::writeString(toplevel, "version", "1");
262
263 QJsonArray entriesArr;
264 for (auto group : m_entries) {
265 for (auto entry : group.entry_list) {
266 // do not save stale entries. they are dead.
267 if (entry->stale) {
268 continue;
269 }
270
271 QJsonObject entryObj;
272 Json::writeString(entryObj, "base", entry->baseId);
273 Json::writeString(entryObj, "path", entry->relativePath);
274 Json::writeString(entryObj, "md5sum", entry->md5sum);
275 Json::writeString(entryObj, "etag", entry->etag);
276 entryObj.insert("last_changed_timestamp", QJsonValue(double(entry->local_changed_timestamp)));
277 if (!entry->remote_changed_timestamp.isEmpty())
278 entryObj.insert("remote_changed_timestamp", QJsonValue(entry->remote_changed_timestamp));
279 if (entry->isEternal()) {
280 entryObj.insert("eternal", true);
281 } else {
282 entryObj.insert("current_age", QJsonValue(double(entry->current_age)));
283 entryObj.insert("max_age", QJsonValue(double(entry->max_age)));
284 }
285 entriesArr.append(entryObj);
286 }
287 }
288 toplevel.insert("entries", entriesArr);
289
290 try {
291 Json::write(toplevel, m_index_file);
292 } catch (const Exception& e) {
293 qWarning() << e.what();
294 }
295}

Callers

nothing calls this directly

Calls 8

writeStringFunction · 0.85
insertMethod · 0.80
isEmptyMethod · 0.80
isEternalMethod · 0.80
appendMethod · 0.80
whatMethod · 0.80
writeFunction · 0.50
sizeMethod · 0.45

Tested by

no test coverage detected