From 2c0e2ab5de21b13dcd25758ca3b96af889db7137 Mon Sep 17 00:00:00 2001 From: Per Larsson Date: Thu, 11 Nov 2021 11:19:17 +0100 Subject: Added batch API to upstream endpoints. --- zenserver/cache/cachekey.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'zenserver/cache/cachekey.cpp') diff --git a/zenserver/cache/cachekey.cpp b/zenserver/cache/cachekey.cpp index eca2d95d5..2ead9ac58 100644 --- a/zenserver/cache/cachekey.cpp +++ b/zenserver/cache/cachekey.cpp @@ -3,6 +3,7 @@ #include "cachekey.h" #include +#include #include namespace zen { @@ -113,7 +114,7 @@ CacheRecordPolicy::GetPayloadPolicy(const Oid& PayloadId) const } bool -CacheRecordPolicy::FromCompactBinary(CbObjectView RecordPolicyObject, CacheRecordPolicy& OutRecordPolicy) +CacheRecordPolicy::Load(CbObjectView RecordPolicyObject, CacheRecordPolicy& OutRecordPolicy) { using namespace std::literals; @@ -139,6 +140,24 @@ CacheRecordPolicy::FromCompactBinary(CbObjectView RecordPolicyObject, CacheRecor return true; } +void +CacheRecordPolicy::Save(const CacheRecordPolicy& Policy, CbWriter& Writer) +{ + Writer << "RecordPolicy"sv << static_cast(Policy.GetRecordPolicy()); + Writer << "DefaultPayloadPolicy"sv << static_cast(Policy.GetDefaultPayloadPolicy()); + + if (!Policy.m_PayloadPolicies.empty()) + { + Writer.BeginArray("PayloadPolicies"sv); + for (const auto& Kv : Policy.m_PayloadPolicies) + { + Writer.AddObjectId("Id"sv, Kv.first); + Writer << "Policy"sv << static_cast(Kv.second); + } + Writer.EndArray(); + } +} + const CacheKey CacheKey::Empty = CacheKey{.Bucket = std::string(), .Hash = IoHash()}; } // namespace zen -- cgit v1.2.3