diff options
| author | mattpetersepic <[email protected]> | 2022-01-27 09:16:05 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-01-27 09:16:05 -0700 |
| commit | 9f60e3a53ea082e4dd2553d50c4c03fa9e9a42c8 (patch) | |
| tree | b304de1c944480adcd3fda442afa8734dd3cd589 /zenserver/cache/structuredcache.h | |
| parent | Fixed ZenServerEntry::*ListenPort compile errors (diff) | |
| download | zen-9f60e3a53ea082e4dd2553d50c4c03fa9e9a42c8.tar.xz zen-9f60e3a53ea082e4dd2553d50c4c03fa9e9a42c8.zip | |
Add batched CacheRecord put rpc (#38)
* Add batched CacheRecord put rpc
Diffstat (limited to 'zenserver/cache/structuredcache.h')
| -rw-r--r-- | zenserver/cache/structuredcache.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/zenserver/cache/structuredcache.h b/zenserver/cache/structuredcache.h index a7ecba845..5b6b10898 100644 --- a/zenserver/cache/structuredcache.h +++ b/zenserver/cache/structuredcache.h @@ -19,6 +19,7 @@ namespace zen { class CasStore; class CidStore; class CbObjectView; +struct PutRequestData; class ScrubContext; class UpstreamCache; class ZenCacheStore; @@ -82,6 +83,12 @@ private: std::atomic_uint64_t UpstreamHitCount{}; std::atomic_uint64_t MissCount{}; }; + enum class PutResult + { + Success, + Fail, + Invalid, + }; [[nodiscard]] bool ValidateKeyUri(zen::HttpServerRequest& Request, CacheRef& OutRef); void HandleCacheRecordRequest(zen::HttpServerRequest& Request, const CacheRef& Ref, CachePolicy PolicyFromURL); @@ -91,11 +98,13 @@ private: void HandleGetCachePayload(zen::HttpServerRequest& Request, const CacheRef& Ref, CachePolicy PolicyFromURL); void HandlePutCachePayload(zen::HttpServerRequest& Request, const CacheRef& Ref, CachePolicy PolicyFromURL); void HandleRpcRequest(zen::HttpServerRequest& Request); + void HandleRpcPutCacheRecords(zen::HttpServerRequest& Request, const CbPackage& BatchRequest); void HandleRpcGetCacheRecords(zen::HttpServerRequest& Request, CbObjectView BatchRequest); void HandleRpcGetCachePayloads(zen::HttpServerRequest& Request, CbObjectView BatchRequest); void HandleCacheBucketRequest(zen::HttpServerRequest& Request, std::string_view Bucket); virtual void HandleStatsRequest(zen::HttpServerRequest& Request) override; virtual void HandleStatusRequest(zen::HttpServerRequest& Request) override; + PutResult PutCacheRecord(PutRequestData& Request, const CbPackage* Package); spdlog::logger& Log() { return m_Log; } spdlog::logger& m_Log; |