summaryrefslogtreecommitdiff
path: root/src/tangara/database/records.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-09-19 15:03:43 +1000
committerjacqueline <me@jacqueline.id.au>2024-09-19 15:03:43 +1000
commit9c95c2b4222da1fb31855f3985ab96d90865086d (patch)
tree8a5bdca0fdffa3720cbef7b683295f629ce308da /src/tangara/database/records.cpp
parent111085b857249a9442e118a5e37a1732716da6a2 (diff)
parent1eddfe97d9398215d4512785c669cf7cc94b6223 (diff)
downloadtangara-fw-9c95c2b4222da1fb31855f3985ab96d90865086d.tar.gz
Merge branch 'main' of codeberg.org:cool-tech-zone/tangara-fw
Diffstat (limited to 'src/tangara/database/records.cpp')
-rw-r--r--src/tangara/database/records.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/tangara/database/records.cpp b/src/tangara/database/records.cpp
index 17009cd8..012cda64 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();
}
@@ -104,13 +105,14 @@ auto ParseDataValue(const leveldb::Slice& slice) -> std::shared_ptr<TrackData> {
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<TrackData>();
@@ -127,6 +129,9 @@ auto ParseDataValue(const leveldb::Slice& slice) -> std::shared_ptr<TrackData> {
auto tag = static_cast<Tag>(entry.first->asUint()->unsignedValue());
res->individual_tag_hashes[tag] = entry.second->asUint()->unsignedValue();
}
+
+ res->last_position = vals->get(7)->asUint()->unsignedValue();
+
return res;
}