diff options
Diffstat (limited to 'zenserver/cache/kvcache.h')
| -rw-r--r-- | zenserver/cache/kvcache.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/zenserver/cache/kvcache.h b/zenserver/cache/kvcache.h new file mode 100644 index 000000000..e601582a4 --- /dev/null +++ b/zenserver/cache/kvcache.h @@ -0,0 +1,38 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include <zencore/httpserver.h> + +#include "cachestore.h" +#include "upstream/jupiter.h" + +namespace zen { + +/** + * Generic HTTP K/V cache - can be consumed via legacy DDC interfaces, with + * no key format conventions. Values are blobs + */ + +class HttpKvCacheService : public zen::HttpService +{ +public: + HttpKvCacheService(); + ~HttpKvCacheService(); + + virtual const char* BaseUri() const override; + virtual void HandleRequest(zen::HttpServerRequest& Request) override; + +private: + MemoryCacheStore m_cache; + FileCacheStore m_cache_{"E:\\Local-DDC-Write", "E:\\Local-DDC" /* Read */}; + RefPtr<CloudCacheClient> m_Cloud; + uint64_t m_InMemoryBlobSizeThreshold = 16384; + uint64_t m_FileBlobSizeThreshold = 16 * 1024 * 1024; + + struct AccessTracker; + + std::unique_ptr<AccessTracker> m_AccessTracker; +}; + +} // namespace zen |