userver: userver/congestion_control/limiter.hpp Source File
Loading...
Searching...
No Matches
limiter.hpp
1#pragma once
2
3#include <optional>
4#include <string>
5
6USERVER_NAMESPACE_BEGIN
7
8namespace congestion_control {
9
10struct Limit {
11 std::optional<std::size_t> load_limit;
12 std::size_t current_load{0};
13
14 std::string ToLogString() const {
15 return "limit=" + (load_limit ? std::to_string(*load_limit) : std::string("(none)"));
16 }
17};
18
19class Limiter {
20public:
21 virtual void SetLimit(const Limit& new_limit) = 0;
22
23protected:
24 ~Limiter() = default;
25};
26
27} // namespace congestion_control
28
29USERVER_NAMESPACE_END