diff options
| author | Stefan Boberg <[email protected]> | 2025-03-05 11:14:54 +0100 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2025-03-05 11:14:54 +0100 |
| commit | ba7b1853b1c9154b08fac6fce4a5548aa2effece (patch) | |
| tree | 80f23473948be7a4aca01dc52bcd5a1e70c3c674 /src | |
| parent | ZEN_TRACE_CPU annotations for builds command (diff) | |
| download | zen-ba7b1853b1c9154b08fac6fce4a5548aa2effece.tar.xz zen-ba7b1853b1c9154b08fac6fce4a5548aa2effece.zip | |
stub out build store/cache service
Diffstat (limited to 'src')
| -rw-r--r-- | src/zenserver/buildstore/buildstore.cpp | 27 | ||||
| -rw-r--r-- | src/zenserver/buildstore/buildstore.h | 28 | ||||
| -rw-r--r-- | src/zenserver/config.h | 1 | ||||
| -rw-r--r-- | src/zenserver/zenserver.cpp | 9 | ||||
| -rw-r--r-- | src/zenserver/zenserver.h | 2 |
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; |