userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
server.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/server/server.hpp
4
/// @brief @copybrief server::Server
5
6
#
include
<
userver
/
formats
/
json
/
value
.
hpp
>
7
8
#
include
<
userver
/
components
/
component_context
.
hpp
>
9
#
include
<
userver
/
engine
/
deadline
.
hpp
>
10
#
include
<
userver
/
engine
/
task
/
task_processor_fwd
.
hpp
>
11
#
include
<
userver
/
server
/
congestion_control
/
limiter
.
hpp
>
12
#
include
<
userver
/
server
/
congestion_control
/
sensor
.
hpp
>
13
#
include
<
userver
/
server
/
handlers
/
fallback_handlers
.
hpp
>
14
#
include
<
userver
/
server
/
handlers
/
http_handler_base
.
hpp
>
15
#
include
<
userver
/
storages
/
secdist
/
component
.
hpp
>
16
#
include
<
userver
/
utils
/
resource_scopes
.
hpp
>
17
#
include
<
userver
/
utils
/
statistics
/
fwd
.
hpp
>
18
19
USERVER_NAMESPACE_BEGIN
20
21
namespace
server {
22
23
namespace
net {
24
struct
StatsAggregation;
25
}
26
27
namespace
http
{
28
class
HttpRequestHandler;
29
}
30
31
class
RequestsView;
32
33
class
ServerImpl;
34
struct
ServerConfig;
35
36
/// @brief Main HTTP server instance
37
class
Server
final
:
public
congestion_control::
Limitee
,
public
congestion_control::
RequestsSource
{
38
public
:
39
Server(
40
ServerConfig config,
41
const
storages::
secdist
::SecdistConfig& secdist,
42
const
components
::ComponentContext& component_context
43
);
44
~Server()
override
;
45
46
const
ServerConfig& GetConfig()
const
;
47
48
std::vector<std::string> GetCommonMiddlewares()
const
;
49
50
void
WriteMonitorData(
utils
::
statistics
::Writer& writer)
const
;
51
52
void
WriteTotalHandlerStatistics(
utils
::
statistics
::Writer& writer)
const
;
53
54
net::StatsAggregation GetServerStats()
const
;
55
56
void
AddHandler(
const
handlers
::
HttpHandlerBase
& handler, engine::TaskProcessor& task_processor);
57
58
const
http
::HttpRequestHandler& GetHttpRequestHandler(
bool
is_monitor =
false
)
const
;
59
60
void
StartMonitorPort();
61
62
void
Start();
63
64
void
StopServing(engine::Deadline serving_shutdown_deadline);
65
66
void
Stop();
67
68
RequestsView& GetRequestsView();
69
70
void
SetLimit(std::optional<size_t> new_limit)
override
;
71
72
size_t GetLimitableHandlersCount()
const
override
;
73
74
void
SetRpsRatelimit(std::optional<size_t> rps);
75
76
void
SetRpsRatelimitStatusCode(
http
::
HttpStatus
status_code);
77
78
std::uint64_t GetTotalRequests()
const
override
;
79
80
void
WriteMetrics(
utils
::
statistics
::Writer& writer)
const
;
81
82
private
:
83
std::unique_ptr<ServerImpl> pimpl_;
84
};
85
86
}
// namespace server
87
88
USERVER_NAMESPACE_END
userver
server
server.hpp
Generated on
for userver by
Doxygen
1.17.0