From 43537798108ce240f1d1131db8611d0bf11a3e0c Mon Sep 17 00:00:00 2001 From: ailurux Date: Thu, 12 Sep 2024 17:35:22 +1000 Subject: WIP: Add last_position field to track data and start on implementation --- src/tangara/database/records.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/tangara/database/records.cpp') diff --git a/src/tangara/database/records.cpp b/src/tangara/database/records.cpp index 17009cd8..9e898c0b 100644 --- a/src/tangara/database/records.cpp +++ b/src/tangara/database/records.cpp @@ -93,6 +93,7 @@ auto EncodeDataValue(const TrackData& track) -> std::string { cppbor::Uint{track.modified_at.first}, cppbor::Uint{track.modified_at.second}, tag_hashes, + cppbor::Uint{track.last_position}, }; return val.toString(); } @@ -127,6 +128,9 @@ auto ParseDataValue(const leveldb::Slice& slice) -> std::shared_ptr { auto tag = static_cast(entry.first->asUint()->unsignedValue()); res->individual_tag_hashes[tag] = entry.second->asUint()->unsignedValue(); } + + res->last_position = vals->get(7)->asUint()->unsignedValue(); + return res; } -- cgit v1.2.3 From d4bad111302f4603386fe4462a0b29590822cff8 Mon Sep 17 00:00:00 2001 From: ailurux Date: Thu, 12 Sep 2024 21:08:11 +1000 Subject: WIP: Fixed errors, cleanup --- src/tangara/database/records.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/tangara/database/records.cpp') diff --git a/src/tangara/database/records.cpp b/src/tangara/database/records.cpp index 9e898c0b..012cda64 100644 --- a/src/tangara/database/records.cpp +++ b/src/tangara/database/records.cpp @@ -105,13 +105,14 @@ auto ParseDataValue(const leveldb::Slice& slice) -> std::shared_ptr { return nullptr; } auto vals = item->asArray(); - if (vals->size() != 7 || vals->get(0)->type() != cppbor::UINT || + if (vals->size() != 8 || 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(4)->type() != cppbor::UINT || vals->get(5)->type() != cppbor::UINT || - vals->get(6)->type() != cppbor::MAP) { + vals->get(6)->type() != cppbor::MAP || + vals->get(7)->type() != cppbor::UINT) { return {}; } auto res = std::make_shared(); -- cgit v1.2.3