diff options
Diffstat (limited to 'zenserver/upstream/zen.h')
| -rw-r--r-- | zenserver/upstream/zen.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/zenserver/upstream/zen.h b/zenserver/upstream/zen.h index 7f55294ce..df975df1f 100644 --- a/zenserver/upstream/zen.h +++ b/zenserver/upstream/zen.h @@ -26,6 +26,8 @@ class logger; namespace zen { class CbObjectWriter; +class CbObjectView; +class CbPackage; class ZenStructuredCacheClient; /** Zen mesh tracker @@ -97,6 +99,14 @@ struct ZenCacheResult bool Success = false; }; +struct ZenStructuredCacheClientOptions +{ + std::string_view Url; + std::span<std::string const> Urls; + std::chrono::milliseconds ConnectTimeout{}; + std::chrono::milliseconds Timeout{}; +}; + /** Zen Structured Cache session * * This provides a context in which cache queries can be performed @@ -114,6 +124,7 @@ public: ZenCacheResult GetCachePayload(std::string_view BucketId, const IoHash& Key, const IoHash& PayloadId); ZenCacheResult PutCacheRecord(std::string_view BucketId, const IoHash& Key, IoBuffer Value, ZenContentType Type); ZenCacheResult PutCachePayload(std::string_view BucketId, const IoHash& Key, const IoHash& PayloadId, IoBuffer Payload); + ZenCacheResult InvokeRpc(const CbObjectView& Request); private: inline spdlog::logger& Log() { return m_Log; } @@ -131,7 +142,7 @@ private: class ZenStructuredCacheClient : public RefCounted { public: - ZenStructuredCacheClient(std::string_view ServiceUrl); + ZenStructuredCacheClient(const ZenStructuredCacheClientOptions& Options); ~ZenStructuredCacheClient(); std::string_view ServiceUrl() const { return m_ServiceUrl; } @@ -139,8 +150,10 @@ public: inline spdlog::logger& Log() { return m_Log; } private: - spdlog::logger& m_Log; - std::string m_ServiceUrl; + spdlog::logger& m_Log; + std::string m_ServiceUrl; + std::chrono::milliseconds m_ConnectTimeout; + std::chrono::milliseconds m_Timeout; RwLock m_SessionStateLock; std::list<detail::ZenCacheSessionState*> m_SessionStateCache; |