From ceba508593fbb2f897dfa6ba38ec3839e62d85a8 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 13 Oct 2023 15:29:06 +1100 Subject: Add modified time to TrackData --- src/database/records.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/database/records.cpp') diff --git a/src/database/records.cpp b/src/database/records.cpp index 37ea429b..9d4dbd78 100644 --- a/src/database/records.cpp +++ b/src/database/records.cpp @@ -67,6 +67,8 @@ auto EncodeDataValue(const TrackData& track) -> std::string { cppbor::Tstr{track.filepath()}, cppbor::Uint{track.tags_hash()}, cppbor::Bool{track.is_tombstoned()}, + cppbor::Uint{track.modified_at().first}, + cppbor::Uint{track.modified_at().second}, }; return val.toString(); } @@ -78,18 +80,24 @@ auto ParseDataValue(const leveldb::Slice& slice) -> std::shared_ptr { return nullptr; } auto vals = item->asArray(); - if (vals->size() != 4 || vals->get(0)->type() != cppbor::UINT || + if (vals->size() != 6 || vals->get(0)->type() != cppbor::UINT || vals->get(1)->type() != cppbor::TSTR || vals->get(2)->type() != cppbor::UINT || - vals->get(3)->type() != cppbor::SIMPLE) { + vals->get(3)->type() != cppbor::SIMPLE || + vals->get(4)->type() != cppbor::UINT || + vals->get(5)->type() != cppbor::UINT) { return {}; } TrackId id = vals->get(0)->asUint()->unsignedValue(); auto path = vals->get(1)->asViewTstr()->view(); uint64_t hash = vals->get(2)->asUint()->unsignedValue(); bool tombstoned = vals->get(3)->asBool()->value(); - return std::make_shared( - id, std::pmr::string{path.data(), path.size()}, hash, tombstoned); + auto modified_at = std::make_pair( + vals->get(4)->asUint()->unsignedValue(), + vals->get(5)->asUint()->unsignedValue()); + return std::make_shared(id, + std::pmr::string{path.data(), path.size()}, + hash, tombstoned, modified_at); } /* 'H/ 0xBEEF' */ -- cgit v1.2.3