aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2022-09-16 12:19:17 +0200
committerDan Engelbrecht <[email protected]>2022-09-16 12:19:17 +0200
commit5ff26cfd356655894106560f215e2a56412be5a2 (patch)
tree90d6225bacb589f825947c00ebee515860370ed7
parent0.1.6-pre8 (diff)
downloadzen-de/reduce-upstream-api.tar.xz
zen-de/reduce-upstream-api.zip
harmonize ZenUpstreamEndpoint::PutCacheRecord with JupiterUpstreamEndpoint::PutCacheRecordde/reduce-upstream-api
-rw-r--r--zenserver/upstream/upstreamcache.cpp68
1 files changed, 22 insertions, 46 deletions
diff --git a/zenserver/upstream/upstreamcache.cpp b/zenserver/upstream/upstreamcache.cpp
index 8288b910d..680d21c7e 100644
--- a/zenserver/upstream/upstreamcache.cpp
+++ b/zenserver/upstream/upstreamcache.cpp
@@ -1198,40 +1198,23 @@ namespace detail {
int64_t TotalBytes = 0ull;
double TotalElapsedSeconds = 0.0;
- if (CacheRecord.Type == ZenContentType::kCbPackage)
+ if (CacheRecord.Type == ZenContentType::kBinary)
{
- CbPackage Package;
- Package.SetObject(CbObject(SharedBuffer(RecordValue)));
-
- for (const IoBuffer& Value : Values)
- {
- if (CompressedBuffer AttachmentBuffer = CompressedBuffer::FromCompressed(SharedBuffer(Value)))
- {
- Package.AddAttachment(CbAttachment(AttachmentBuffer));
- }
- else
- {
- return {.Reason = std::string("Invalid value buffer"), .Success = false};
- }
- }
-
- BinaryWriter MemStream;
- Package.Save(MemStream);
- IoBuffer PackagePayload(IoBuffer::Wrap, MemStream.Data(), MemStream.Size());
-
+ ZEN_ASSERT(Values.size() == 0);
+ Result.Success = false;
for (uint32_t Attempt = 0; Attempt < MaxAttempts && !Result.Success; Attempt++)
{
Result = Session.PutCacheRecord(CacheRecord.Namespace,
CacheRecord.Key.Bucket,
CacheRecord.Key.Hash,
- PackagePayload,
+ RecordValue,
CacheRecord.Type);
}
m_Status.SetFromErrorCode(Result.ErrorCode, Result.Reason);
- TotalBytes = Result.Bytes;
- TotalElapsedSeconds = Result.ElapsedSeconds;
+ TotalBytes += Result.Bytes;
+ TotalElapsedSeconds += Result.ElapsedSeconds;
}
else if (CacheRecord.Type == ZenContentType::kCompressedBinary)
{
@@ -1287,46 +1270,39 @@ namespace detail {
}
else
{
- for (size_t Idx = 0, Count = Values.size(); Idx < Count; Idx++)
+ ZEN_ASSERT(CacheRecord.Type == ZenContentType::kCbPackage || CacheRecord.Type == ZenContentType::kCbObject);
+ CbPackage Package;
+ Package.SetObject(CbObject(SharedBuffer(RecordValue)));
+
+ for (const IoBuffer& Value : Values)
{
- Result.Success = false;
- for (uint32_t Attempt = 0; Attempt < MaxAttempts && !Result.Success; Attempt++)
+ if (CompressedBuffer AttachmentBuffer = CompressedBuffer::FromCompressed(SharedBuffer(Value)))
{
- Result = Session.PutCacheValue(CacheRecord.Namespace,
- CacheRecord.Key.Bucket,
- CacheRecord.Key.Hash,
- CacheRecord.ValueContentIds[Idx],
- Values[Idx]);
+ Package.AddAttachment(CbAttachment(AttachmentBuffer));
}
-
- m_Status.SetFromErrorCode(Result.ErrorCode, Result.Reason);
-
- TotalBytes += Result.Bytes;
- TotalElapsedSeconds += Result.ElapsedSeconds;
-
- if (!Result.Success)
+ else
{
- return {.Reason = "Failed to upload value",
- .Bytes = TotalBytes,
- .ElapsedSeconds = TotalElapsedSeconds,
- .Success = false};
+ return {.Reason = std::string("Invalid value buffer"), .Success = false};
}
}
- Result.Success = false;
+ BinaryWriter MemStream;
+ Package.Save(MemStream);
+ IoBuffer PackagePayload(IoBuffer::Wrap, MemStream.Data(), MemStream.Size());
+
for (uint32_t Attempt = 0; Attempt < MaxAttempts && !Result.Success; Attempt++)
{
Result = Session.PutCacheRecord(CacheRecord.Namespace,
CacheRecord.Key.Bucket,
CacheRecord.Key.Hash,
- RecordValue,
+ PackagePayload,
CacheRecord.Type);
}
m_Status.SetFromErrorCode(Result.ErrorCode, Result.Reason);
- TotalBytes += Result.Bytes;
- TotalElapsedSeconds += Result.ElapsedSeconds;
+ TotalBytes = Result.Bytes;
+ TotalElapsedSeconds = Result.ElapsedSeconds;
}
return {.Reason = std::move(Result.Reason),