diff options
Diffstat (limited to 'src/zenserver/hub/httphubservice.h')
| -rw-r--r-- | src/zenserver/hub/httphubservice.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/zenserver/hub/httphubservice.h b/src/zenserver/hub/httphubservice.h index d08eeea2a..5f940017e 100644 --- a/src/zenserver/hub/httphubservice.h +++ b/src/zenserver/hub/httphubservice.h @@ -3,9 +3,11 @@ #pragma once #include <zenhttp/httpserver.h> +#include <zenhttp/httpstatus.h> namespace zen { +class HttpStatsService; class Hub; /** ZenServer Hub Service @@ -14,25 +16,32 @@ class Hub; * use in UEFN content worker style scenarios. * */ -class HttpHubService : public zen::HttpService +class HttpHubService : public HttpService, public IHttpStatusProvider, public IHttpStatsProvider { public: - HttpHubService(Hub& Hub); + HttpHubService(Hub& Hub, HttpStatsService& StatsService, HttpStatusService& StatusService); ~HttpHubService(); HttpHubService(const HttpHubService&) = delete; HttpHubService& operator=(const HttpHubService&) = delete; virtual const char* BaseUri() const override; - virtual void HandleRequest(zen::HttpServerRequest& Request) override; + virtual void HandleRequest(HttpServerRequest& Request) override; + virtual void HandleStatusRequest(HttpServerRequest& Request) override; + virtual void HandleStatsRequest(HttpServerRequest& Request) override; + virtual uint64_t GetActivityCounter() override; void SetNotificationEndpoint(std::string_view UpstreamNotificationEndpoint, std::string_view InstanceId); private: - HttpRequestRouter m_Router; - Hub& m_Hub; + HttpRequestRouter m_Router; + metrics::OperationTiming m_HttpRequests; + + HttpStatsService& m_StatsService; + HttpStatusService& m_StatusService; + void HandleModuleGet(HttpServerRequest& Request, std::string_view ModuleId); void HandleModuleDelete(HttpServerRequest& Request, std::string_view ModuleId); }; |