// Copyright Epic Games, Inc. All Rights Reserved. #include "computeservice.h" #if ZEN_WITH_COMPUTE_SERVICES # include # include # include # include # include # include ZEN_THIRD_PARTY_INCLUDES_START # include # include ZEN_THIRD_PARTY_INCLUDES_END # include namespace zen { ////////////////////////////////////////////////////////////////////////// struct ResourceMetrics { uint64_t DiskUsageBytes = 0; uint64_t MemoryUsageBytes = 0; }; ////////////////////////////////////////////////////////////////////////// struct HttpComputeService::Impl { Impl(const Impl&) = delete; Impl& operator=(const Impl&) = delete; Impl(); ~Impl(); void Initialize(std::filesystem::path BaseDir) { ZEN_UNUSED(BaseDir); } void Cleanup() {} private: }; HttpComputeService::Impl::Impl() { } HttpComputeService::Impl::~Impl() { } /////////////////////////////////////////////////////////////////////////// HttpComputeService::HttpComputeService(std::filesystem::path BaseDir) : m_Impl(std::make_unique()) { using namespace std::literals; m_Impl->Initialize(BaseDir); m_Router.RegisterRoute( "status", [this](HttpRouterRequest& Req) { CbObjectWriter Obj; Obj.BeginArray("modules"); Obj.EndArray(); Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Obj.Save()); }, HttpVerb::kGet); m_Router.RegisterRoute( "stats", [this](HttpRouterRequest& Req) { CbObjectWriter Obj; Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Obj.Save()); }, HttpVerb::kGet); } HttpComputeService::~HttpComputeService() { } const char* HttpComputeService::BaseUri() const { return "/compute/"; } void HttpComputeService::HandleRequest(zen::HttpServerRequest& Request) { m_Router.HandleRequest(Request); } } // namespace zen #endif // ZEN_WITH_COMPUTE_SERVICES