// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include #include #include "zipfs.h" #include #include namespace zen { class HttpStatsService; class HttpFrontendService final : public HttpService, public IHttpStatusProvider, public IHttpStatsProvider { public: HttpFrontendService(std::filesystem::path Directory, HttpStatsService& StatsService, HttpStatusService& StatusService); virtual ~HttpFrontendService(); virtual const char* BaseUri() const override; virtual void HandleRequest(HttpServerRequest& Request) override; virtual void HandleStatusRequest(HttpServerRequest& Request) override; virtual void HandleStatsRequest(HttpServerRequest& Request) override; virtual CbObject CollectStats() override; virtual uint64_t GetActivityCounter() override; private: std::unique_ptr m_ZipFs; std::filesystem::path m_Directory; std::filesystem::path m_DocsDirectory; HttpStatsService& m_StatsService; HttpStatusService& m_StatusService; metrics::OperationTiming m_HttpRequests; }; } // namespace zen