// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include #if !defined(ZEN_WITH_COMPUTE_SERVICES) # define ZEN_WITH_COMPUTE_SERVICES ZEN_PLATFORM_WINDOWS #endif #if ZEN_WITH_COMPUTE_SERVICES # include # include # include namespace zen { class CasStore; /** * Process launcher for test executables */ class HttpLaunchService : public HttpService { public: HttpLaunchService(CasStore& Store, const std::filesystem::path& SandboxBaseDir); ~HttpLaunchService(); virtual const char* BaseUri() const override; virtual void HandleRequest(HttpServerRequest& Request) override; private: inline spdlog::logger& Log() { return m_Log; } spdlog::logger& m_Log; HttpRequestRouter m_Router; CasStore& m_CasStore; std::filesystem::path m_SandboxPath; std::atomic m_SandboxCount{0}; std::filesystem::path CreateNewSandbox(); }; } // namespace zen #endif // ZEN_WITH_COMPUTE_SERVICES