diff options
Diffstat (limited to 'zenutil/cache')
| -rw-r--r-- | zenutil/cache/cacherequests.cpp | 76 |
1 files changed, 39 insertions, 37 deletions
diff --git a/zenutil/cache/cacherequests.cpp b/zenutil/cache/cacherequests.cpp index 2c14ef35b..e764e80c4 100644 --- a/zenutil/cache/cacherequests.cpp +++ b/zenutil/cache/cacherequests.cpp @@ -20,6 +20,8 @@ namespace zen { namespace cacherequests { + using namespace std::literals; + namespace { constinit AsciiSet ValidNamespaceNameCharactersSet{"abcdefghijklmnopqrstuvwxyz0123456789-_.ABCDEFGHIJKLMNOPQRSTUVWXYZ"}; constinit AsciiSet ValidBucketNameCharactersSet{"abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}; @@ -970,43 +972,43 @@ namespace cacherequests { } } - // bool CacheRecord::Parse(CbObjectView& Reader) - // { - // CbObjectView KeyView = Reader["Key"].AsObjectView(); - // - // if (!GetRequestCacheKey(KeyView, Key)) - // { - // return false; - // } - // CbArrayView ValuesArray = Reader["Values"].AsArrayView(); - // Values.reserve(ValuesArray.Num()); - // for (CbFieldView Value : ValuesArray) - // { - // CbObjectView ObjectView = Value.AsObjectView(); - // Values.push_back({.Id = ObjectView["Id"].AsObjectId(), - // .RawHash = ObjectView["RawHash"].AsHash(), - // .RawSize = ObjectView["RawSize"].AsUInt64()}); - // } - // return true; - // } - // - // bool CacheRecord::Format(CbObjectWriter& Writer) const - // { - // WriteCacheRequestKey(Writer, Key); - // Writer.BeginArray("Values"); - // for (const CacheRecordValue& Value : Values) - // { - // Writer.BeginObject(); - // { - // Writer.AddObjectId("Id", Value.Id); - // Writer.AddHash("RawHash", Value.RawHash); - // Writer.AddInteger("RawSize", Value.RawSize); - // } - // Writer.EndObject(); - // } - // Writer.EndArray(); - // return true; - // } + bool CacheRecord::Parse(const CbObjectView& Reader) + { + CbObjectView KeyView = Reader["Key"sv].AsObjectView(); + + if (!GetRequestCacheKey(KeyView, Key)) + { + return false; + } + CbArrayView ValuesArray = Reader["Values"sv].AsArrayView(); + Values.reserve(ValuesArray.Num()); + for (CbFieldView Value : ValuesArray) + { + CbObjectView ObjectView = Value.AsObjectView(); + Values.push_back({.Id = ObjectView["Id"sv].AsObjectId(), + .RawHash = ObjectView["RawHash"sv].AsBinaryAttachment(), + .RawSize = ObjectView["RawSize"sv].AsUInt64()}); + } + return true; + } + + bool CacheRecord::Format(CbObjectWriter& Writer) const + { + WriteCacheRequestKey(Writer, Key); + Writer.BeginArray("Values"sv); + for (const CacheRecordValue& Value : Values) + { + Writer.BeginObject(); + { + Writer.AddObjectId("Id"sv, Value.Id); + Writer.AddBinaryAttachment("RawHash"sv, Value.RawHash); + Writer.AddInteger("RawSize"sv, Value.RawSize); + } + Writer.EndObject(); + } + Writer.EndArray(); + return true; + } #if ZEN_WITH_TESTS |