userver
C++ Async Framework
Loading...
Searching...
No Matches
limiter.hpp
1
#
pragma
once
2
3
#
include
<
optional
>
4
#
include
<
vector
>
5
6
#
include
<
userver
/
concurrent
/
variable
.
hpp
>
7
#
include
<
userver
/
congestion_control
/
limiter
.
hpp
>
8
#
include
<
userver
/
utils
/
not_null
.
hpp
>
9
10
USERVER_NAMESPACE_BEGIN
11
12
namespace
server::congestion_control {
13
14
class
Limitee
{
15
public
:
16
virtual
void
SetLimit(std::optional<size_t> new_limit) = 0;
17
};
18
19
class
Limiter
final
:
public
USERVER_NAMESPACE::
congestion_control
::
Limiter
{
20
public
:
21
void
SetLimit(
const
USERVER_NAMESPACE::
congestion_control
::
Limit
& new_limit)
override
;
22
23
void
RegisterLimitee(
Limitee
& limitee);
24
25
private
:
26
concurrent::Variable<std::vector<utils::NotNull<Limitee*>>, std::mutex> limitees_;
27
};
28
29
}
// namespace server::congestion_control
30
31
USERVER_NAMESPACE_END
userver
server
congestion_control
limiter.hpp
Generated on Tue Nov 19 2024 11:27:41 for userver by
Doxygen
1.10.0