aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2025-03-05 11:14:54 +0100
committerStefan Boberg <[email protected]>2025-03-05 11:14:54 +0100
commitba7b1853b1c9154b08fac6fce4a5548aa2effece (patch)
tree80f23473948be7a4aca01dc52bcd5a1e70c3c674 /src
parentZEN_TRACE_CPU annotations for builds command (diff)
downloadzen-ba7b1853b1c9154b08fac6fce4a5548aa2effece.tar.xz
zen-ba7b1853b1c9154b08fac6fce4a5548aa2effece.zip
stub out build store/cache service
Diffstat (limited to 'src')
-rw-r--r--src/zenserver/buildstore/buildstore.cpp27
-rw-r--r--src/zenserver/buildstore/buildstore.h28
-rw-r--r--src/zenserver/config.h1
-rw-r--r--src/zenserver/zenserver.cpp9
-rw-r--r--src/zenserver/zenserver.h2
5 files changed, 67 insertions, 0 deletions
diff --git a/src/zenserver/buildstore/buildstore.cpp b/src/zenserver/buildstore/buildstore.cpp
new file mode 100644
index 000000000..1a5932672
--- /dev/null
+++ b/src/zenserver/buildstore/buildstore.cpp
@@ -0,0 +1,27 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#include "buildstore.h"
+
+namespace zen {
+
+HttpBuildStoreService::HttpBuildStoreService(BuildStoreConfig Cfg) : m_Config(Cfg)
+{
+}
+
+HttpBuildStoreService::~HttpBuildStoreService()
+{
+}
+
+const char*
+HttpBuildStoreService::HttpBuildStoreService::BaseUri() const
+{
+ return "/builds/";
+}
+
+void
+HttpBuildStoreService::HandleRequest(zen::HttpServerRequest& Request)
+{
+ ZEN_UNUSED(Request);
+}
+
+} // namespace zen
diff --git a/src/zenserver/buildstore/buildstore.h b/src/zenserver/buildstore/buildstore.h
new file mode 100644
index 000000000..b676c5846
--- /dev/null
+++ b/src/zenserver/buildstore/buildstore.h
@@ -0,0 +1,28 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#pragma once
+
+#include <zenhttp/httpserver.h>
+#include <filesystem>
+
+namespace zen {
+
+struct BuildStoreConfig
+{
+ std::filesystem::path RootDirectory;
+};
+
+class HttpBuildStoreService final : public zen::HttpService
+{
+public:
+ HttpBuildStoreService(BuildStoreConfig Cfg);
+ virtual ~HttpBuildStoreService();
+
+ virtual const char* BaseUri() const override;
+ virtual void HandleRequest(zen::HttpServerRequest& Request) override;
+
+private:
+ BuildStoreConfig m_Config;
+};
+
+} // namespace zen
diff --git a/src/zenserver/config.h b/src/zenserver/config.h
index c7781aada..d2965b819 100644
--- a/src/zenserver/config.h
+++ b/src/zenserver/config.h
@@ -172,6 +172,7 @@ struct ZenServerOptions
bool SentryAllowPII = false; // Allow personally identifiable information in sentry crash reports
bool Detach = true; // Whether zenserver should detach from existing process group (Mac/Linux)
bool ObjectStoreEnabled = false;
+ bool BuildStoreEnabled = false;
bool NoConsoleOutput = false; // Control default use of stdout for diagnostics
std::string Loggers[zen::logging::level::LogLevelCount];
std::string ScrubOptions;
diff --git a/src/zenserver/zenserver.cpp b/src/zenserver/zenserver.cpp
index f84bc0b00..c12b1bac2 100644
--- a/src/zenserver/zenserver.cpp
+++ b/src/zenserver/zenserver.cpp
@@ -310,6 +310,15 @@ ZenServer::Initialize(const ZenServerOptions& ServerOptions, ZenServerState::Zen
m_Http->RegisterService(*m_ObjStoreService);
}
+ if (ServerOptions.BuildStoreEnabled)
+ {
+ BuildStoreConfig ObjCfg;
+ ObjCfg.RootDirectory = m_DataRoot / "builds";
+
+ m_BuildStoreService = std::make_unique<HttpBuildStoreService>(std::move(ObjCfg));
+ m_Http->RegisterService(*m_BuildStoreService);
+ }
+
#if ZEN_WITH_VFS
m_VfsService = std::make_unique<VfsService>();
m_VfsService->AddService(Ref<ProjectStore>(m_ProjectStore));
diff --git a/src/zenserver/zenserver.h b/src/zenserver/zenserver.h
index 80054dc35..a66e6d030 100644
--- a/src/zenserver/zenserver.h
+++ b/src/zenserver/zenserver.h
@@ -25,6 +25,7 @@ ZEN_THIRD_PARTY_INCLUDES_END
#include <zenstore/cache/structuredcachestore.h>
#include <zenstore/gc.h>
#include "admin/admin.h"
+#include "buildstore/buildstore.h"
#include "cache/httpstructuredcache.h"
#include "diag/diagsvcs.h"
#include "frontend/frontend.h"
@@ -140,6 +141,7 @@ private:
HttpHealthService m_HealthService;
std::unique_ptr<HttpFrontendService> m_FrontendService;
std::unique_ptr<HttpObjectStoreService> m_ObjStoreService;
+ std::unique_ptr<HttpBuildStoreService> m_BuildStoreService;
std::unique_ptr<VfsService> m_VfsService;
std::unique_ptr<JobQueue> m_JobQueue;
std::unique_ptr<HttpAdminService> m_AdminService;