aboutsummaryrefslogtreecommitdiff
path: root/zenserver/cidstore.h
diff options
context:
space:
mode:
Diffstat (limited to 'zenserver/cidstore.h')
-rw-r--r--zenserver/cidstore.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/zenserver/cidstore.h b/zenserver/cidstore.h
new file mode 100644
index 000000000..8e7832b35
--- /dev/null
+++ b/zenserver/cidstore.h
@@ -0,0 +1,35 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#pragma once
+
+#include <zenhttp/httpserver.h>
+
+namespace zen {
+
+/**
+ * Simple CID store HTTP endpoint
+ *
+ * Note that since this does not end up pinning any of the chunks it's only really useful for a small subset of use cases where you know a
+ * chunk exists in the underlying CID store. Thus it's mainly useful for internal use when communicating between Zen store instances
+ *
+ * Using this interface for adding CID chunks makes little sense except for testing purposes as garbage collection may reap anything you add
+ * before anything ever gets to access it
+ */
+
+class CidStore;
+
+class HttpCidService : public HttpService
+{
+public:
+ explicit HttpCidService(CidStore& Store);
+ ~HttpCidService() = default;
+
+ virtual const char* BaseUri() const override;
+ virtual void HandleRequest(zen::HttpServerRequest& Request) override;
+
+private:
+ CidStore& m_CidStore;
+ HttpRequestRouter m_Router;
+};
+
+} // namespace zen