userver
C++ Async Framework
Documentation
API Groups
Namespaces
Reference
Class List
Class Index
File List
Macros
All
e
i
l
r
t
u
Functions
Macros
e
i
l
r
t
u
Examples
Toggle main menu visibility
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Concepts
Loading...
Searching...
No Matches
All results
sensor.hpp
1
#
pragma
once
2
3
#
include
<
chrono
>
4
#
include
<
cstdint
>
5
#
include
<
string
>
6
#
include
<
unordered_map
>
7
8
USERVER_NAMESPACE_BEGIN
9
10
namespace
congestion_control {
11
12
/// Abstract sensor that fetches counters. These counters will be used
13
/// to forecast saturation levels and limit current load.
14
class
Sensor
{
15
public
:
16
struct
Data
{
17
std::uint64_t current_load{0};
18
std::uint64_t overload_events_count{0};
19
std::uint64_t no_overload_events_count{0};
20
std::chrono::steady_clock::time_point tp;
21
22
double
GetLoadPercent()
const
;
23
};
16
struct
Data
{
…
};
24
25
virtual
~Sensor() =
default
;
26
27
/// @brief Fetch current counters
28
/// @note Can be called both from coroutine and non-coroutine context
29
virtual
Data
FetchCurrent
() = 0;
30
};
14
class
Sensor
{
…
};
31
32
namespace
v2
{
33
34
class
Sensor
{
35
public
:
36
struct
SingleObjectData
{
37
static
constexpr
auto
kCommonObjectName =
"common"
;
38
39
std::size_t total{0};
40
std::size_t timeouts{0};
41
std::size_t timings_sum_ms{0};
42
43
double
GetRate()
const
{
return
static_cast
<
double
>(timeouts) / (total ? total : 1); }
44
std::string ToLogString()
const
;
45
};
36
struct
SingleObjectData
{
…
};
46
47
struct
Data
{
48
std::unordered_map<std::string,
SingleObjectData
> objects;
49
std::size_t current_load{0};
50
};
47
struct
Data
{
…
};
51
52
virtual
~Sensor() =
default
;
53
54
virtual
Data
GetCurrent() = 0;
55
};
34
class
Sensor
{
…
};
56
57
}
// namespace v2
58
59
}
// namespace congestion_control
60
61
USERVER_NAMESPACE_END
userver
congestion_control
sensor.hpp
Generated on Tue Sep 2 2025 12:30:07 for userver by
Doxygen
1.13.2