From eacea59e8a3f9602ed06834a8edc4e6ab18a4bb9 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 30 Jan 2024 11:03:31 +1100 Subject: Do more to avoid and recover from partial db updates - do not power off in an update is in progress - explicitly store last update time, rather than deriving it from unchanged tracks. --- src/database/include/database.hpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/database/include') diff --git a/src/database/include/database.hpp b/src/database/include/database.hpp index cb4064fb..c4da3dc1 100644 --- a/src/database/include/database.hpp +++ b/src/database/include/database.hpp @@ -78,6 +78,7 @@ class Database { auto getIndexes() -> std::vector; auto updateIndexes() -> void; + auto isUpdating() -> bool; // Cannot be copied or moved. Database(const Database&) = delete; @@ -96,12 +97,17 @@ class Database { ITagParser& tag_parser_; locale::ICollator& collator_; + std::atomic is_updating_; + Database(leveldb::DB* db, leveldb::Cache* cache, IFileGatherer& file_gatherer, ITagParser& tag_parser, locale::ICollator& collator); + auto dbGetLastUpdate() -> std::pair; + auto dbSetLastUpdate(std::pair) -> void; + auto dbMintNewTrackId() -> TrackId; auto dbEntomb(TrackId track, uint64_t hash) -> void; -- cgit v1.2.3