aboutsummaryrefslogtreecommitdiff
path: root/zenserver/upstream/zen.h
diff options
context:
space:
mode:
Diffstat (limited to 'zenserver/upstream/zen.h')
-rw-r--r--zenserver/upstream/zen.h19
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;