aboutsummaryrefslogtreecommitdiff
path: root/zenserver/upstream/upstreamcache.h
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2022-09-06 16:42:59 +0200
committerGitHub <[email protected]>2022-09-06 07:42:59 -0700
commitf9ddb13500f41549fa472f6aaffa096d64554145 (patch)
tree24de689afc0cdb6cd7dd99ce85d66b7223630c64 /zenserver/upstream/upstreamcache.h
parentupdated codeowners (#157) (diff)
downloadzen-f9ddb13500f41549fa472f6aaffa096d64554145.tar.xz
zen-f9ddb13500f41549fa472f6aaffa096d64554145.zip
Implement proper GetCacheValues upstream (#155)
* Implement proper GetCacheValues upstream * changelog
Diffstat (limited to 'zenserver/upstream/upstreamcache.h')
-rw-r--r--zenserver/upstream/upstreamcache.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/zenserver/upstream/upstreamcache.h b/zenserver/upstream/upstreamcache.h
index 13548efc8..5b154a1b5 100644
--- a/zenserver/upstream/upstreamcache.h
+++ b/zenserver/upstream/upstreamcache.h
@@ -81,7 +81,7 @@ using OnCacheRecordGetComplete = std::function<void(CacheRecordGetCompleteParams
struct CacheValueGetCompleteParams
{
- CacheChunkRequest& Request;
+ CacheValueRequest& Request;
IoHash RawHash;
uint64_t RawSize;
IoBuffer Value;
@@ -89,6 +89,16 @@ struct CacheValueGetCompleteParams
using OnCacheValueGetComplete = std::function<void(CacheValueGetCompleteParams&&)>;
+struct CacheChunkGetCompleteParams
+{
+ CacheChunkRequest& Request;
+ IoHash RawHash;
+ uint64_t RawSize;
+ IoBuffer Value;
+};
+
+using OnCacheChunksGetComplete = std::function<void(CacheChunkGetCompleteParams&&)>;
+
struct UpstreamEndpointStats
{
metrics::OperationTiming CacheGetRequestTiming;
@@ -171,9 +181,13 @@ public:
virtual GetUpstreamCacheResult GetCacheValue(std::string_view Namespace, const CacheKey& CacheKey, const IoHash& PayloadId) = 0;
virtual GetUpstreamCacheResult GetCacheValues(std::string_view Namespace,
- std::span<CacheChunkRequest*> CacheChunkRequests,
+ std::span<CacheValueRequest*> CacheValueRequests,
OnCacheValueGetComplete&& OnComplete) = 0;
+ virtual GetUpstreamCacheResult GetCacheChunks(std::string_view Namespace,
+ std::span<CacheChunkRequest*> CacheChunkRequests,
+ OnCacheChunksGetComplete&& OnComplete) = 0;
+
virtual PutUpstreamCacheResult PutCacheRecord(const UpstreamCacheRecord& CacheRecord,
IoBuffer RecordValue,
std::span<IoBuffer const> Payloads) = 0;
@@ -207,9 +221,13 @@ public:
virtual GetUpstreamCacheResult GetCacheValue(std::string_view Namespace, const CacheKey& CacheKey, const IoHash& ValueContentId) = 0;
virtual void GetCacheValues(std::string_view Namespace,
- std::span<CacheChunkRequest*> CacheChunkRequests,
+ std::span<CacheValueRequest*> CacheValueRequests,
OnCacheValueGetComplete&& OnComplete) = 0;
+ virtual void GetCacheChunks(std::string_view Namespace,
+ std::span<CacheChunkRequest*> CacheChunkRequests,
+ OnCacheChunksGetComplete&& OnComplete) = 0;
+
virtual void EnqueueUpstream(UpstreamCacheRecord CacheRecord) = 0;
virtual void GetStatus(CbObjectWriter& CbO) = 0;