3#include <userver/formats/json/value.hpp>
5#include <userver/components/component_context.hpp>
6#include <userver/engine/task/task_processor_fwd.hpp>
7#include <userver/server/handlers/fallback_handlers.hpp>
8#include <userver/server/handlers/http_handler_base.hpp>
9#include <userver/utils/statistics/fwd.hpp>
11USERVER_NAMESPACE_BEGIN
20class HttpRequestHandler;
30 Server(ServerConfig config,
31 const components::ComponentContext& component_context);
34 const ServerConfig& GetConfig()
const;
36 void WriteMonitorData(
utils::statistics::Writer& writer)
const;
38 void WriteTotalHandlerStatistics(
utils::statistics::Writer& writer)
const;
40 net::Stats GetServerStats()
const;
43 engine::TaskProcessor& task_processor);
45 size_t GetRegisteredHandlersCount()
const;
47 const http::HttpRequestHandler& GetHttpRequestHandler(
48 bool is_monitor =
false)
const;
54 RequestsView& GetRequestsView();
56 void SetRpsRatelimit(std::optional<size_t> rps);
58 void SetRpsRatelimitStatusCode(http::
HttpStatus status_code);
61 std::unique_ptr<ServerImpl> pimpl;