diff options
| author | Martin Ridgers <[email protected]> | 2021-11-17 08:30:40 +0100 |
|---|---|---|
| committer | Martin Ridgers <[email protected]> | 2021-11-17 08:30:40 +0100 |
| commit | 5e6b243d7fee946cc8126e54ffaee050fce7433d (patch) | |
| tree | 4a953b941e794c9fe978987696a1acf50fed5858 /zenserver/upstream/zen.h | |
| parent | Hooked up zenserver:main() to ZenEntryPoint::Run() on POSIX (diff) | |
| parent | Format fix. (diff) | |
| download | zen-5e6b243d7fee946cc8126e54ffaee050fce7433d.tar.xz zen-5e6b243d7fee946cc8126e54ffaee050fce7433d.zip | |
Merged main
Diffstat (limited to 'zenserver/upstream/zen.h')
| -rw-r--r-- | zenserver/upstream/zen.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/zenserver/upstream/zen.h b/zenserver/upstream/zen.h index 1fbfed7dd..ac3abc931 100644 --- a/zenserver/upstream/zen.h +++ b/zenserver/upstream/zen.h @@ -101,6 +101,14 @@ struct ZenCacheResult bool Success = false; }; +struct ZenClientOptions +{ + 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 @@ -136,7 +144,7 @@ private: class ZenStructuredCacheClient : public RefCounted { public: - ZenStructuredCacheClient(std::string_view ServiceUrl); + ZenStructuredCacheClient(const ZenClientOptions& Options); ~ZenStructuredCacheClient(); std::string_view ServiceUrl() const { return m_ServiceUrl; } @@ -144,16 +152,20 @@ 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; detail::ZenCacheSessionState* AllocSessionState(); void FreeSessionState(detail::ZenCacheSessionState*); + void InitializeSessionState(detail::ZenCacheSessionState& State); friend class ZenStructuredCacheSession; + friend struct detail::ZenCacheSessionState; }; } // namespace zen |