diff options
| author | Dan Engelbrecht <[email protected]> | 2022-09-06 16:42:59 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-09-06 07:42:59 -0700 |
| commit | f9ddb13500f41549fa472f6aaffa096d64554145 (patch) | |
| tree | 24de689afc0cdb6cd7dd99ce85d66b7223630c64 /zenserver/upstream/upstreamcache.h | |
| parent | updated codeowners (#157) (diff) | |
| download | zen-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.h | 24 |
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; |