aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2023-02-07 02:35:07 -0800
committerGitHub <[email protected]>2023-02-07 02:35:07 -0800
commit737d7b7e6aaf80f1fee7e49c45e8fc9ecde1eabb (patch)
tree690645f6e465980a058092f4ddac156a8edafc2c
parentchangelog (diff)
downloadzen-737d7b7e6aaf80f1fee7e49c45e8fc9ecde1eabb.tar.xz
zen-737d7b7e6aaf80f1fee7e49c45e8fc9ecde1eabb.zip
Add support for "packagedata" mapping in oplog entries (#224)
-rw-r--r--CHANGELOG.md1
-rw-r--r--zenserver/projectstore/projectstore.cpp16
2 files changed, 14 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6c5b8ec74..8088d56c3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,5 @@
##
+- Feature: Add support for "packagedata" mapping in oplog entries
- Feature: Zen command line tool `project-create` to create a project store project
- `--project` Project name (id)
- `--rootdir` Absolute path to root directory (optional)
diff --git a/zenserver/projectstore/projectstore.cpp b/zenserver/projectstore/projectstore.cpp
index 188865edb..a07698d50 100644
--- a/zenserver/projectstore/projectstore.cpp
+++ b/zenserver/projectstore/projectstore.cpp
@@ -630,9 +630,10 @@ ProjectStore::Oplog::GetMapping(CbObject Core)
OplogEntryMapping Result;
// Update chunk id maps
- CbObjectView PackageObj = Core["package"sv].AsObjectView();
- CbArrayView BulkDataArray = Core["bulkdata"sv].AsArrayView();
- Result.Chunks.reserve(PackageObj ? 1 : 0 + BulkDataArray.Num());
+ CbObjectView PackageObj = Core["package"sv].AsObjectView();
+ CbArrayView BulkDataArray = Core["bulkdata"sv].AsArrayView();
+ CbArrayView PackageDataArray = Core["packagedata"sv].AsArrayView();
+ Result.Chunks.reserve(PackageObj ? 1 : 0 + BulkDataArray.Num() + PackageDataArray.Num());
if (PackageObj)
{
@@ -642,6 +643,15 @@ ProjectStore::Oplog::GetMapping(CbObject Core)
ZEN_DEBUG("package data {} -> {}", Id, Hash);
}
+ for (CbFieldView& Entry : PackageDataArray)
+ {
+ CbObjectView PackageDataObj = Entry.AsObjectView();
+ Oid Id = PackageDataObj["id"sv].AsObjectId();
+ IoHash Hash = PackageDataObj["data"sv].AsBinaryAttachment();
+ Result.Chunks.emplace_back(OplogEntryMapping::Mapping{Id, Hash});
+ ZEN_DEBUG("package {} -> {}", Id, Hash);
+ }
+
for (CbFieldView& Entry : BulkDataArray)
{
CbObjectView BulkObj = Entry.AsObjectView();