diff options
Diffstat (limited to 'zenserver/cache/structuredcache.cpp')
| -rw-r--r-- | zenserver/cache/structuredcache.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/zenserver/cache/structuredcache.cpp b/zenserver/cache/structuredcache.cpp index 728cfaded..ecc2367ad 100644 --- a/zenserver/cache/structuredcache.cpp +++ b/zenserver/cache/structuredcache.cpp @@ -137,17 +137,21 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req // Extract data for index zen::CbObjectView Cbo(Body.Data()); - int ReferenceCount = 0; + std::vector<IoHash> References; + Cbo.IterateAttachments([&](CbFieldView AttachmentView) { References.push_back(AttachmentView.AsHash()); }); - zen::CbObjectWriter Idx; - Idx.BeginArray(); + if (!References.empty()) + { + zen::CbObjectWriter Idx; + Idx.BeginArray(); - Cbo.IterateAttachments([&](CbFieldView AttachmentView) { - Idx.AddHash(AttachmentView.AsHash()); - ++ReferenceCount; - }); + for (const IoHash& Hash : References) + { + Idx.AddHash(Hash); + } - Idx.EndArray(); + Idx.EndArray(); + } // TODO: store references in index } @@ -214,7 +218,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re case kHead: case kGet: { - // TODO: need to map from uncompressed content address into the storage + // TODO: need to map from uncompressed content address into the storage // (compressed) content address zen::IoBuffer Payload = m_CasStore.FindChunk(Ref.PayloadId); |