⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
userver
C++ Async Framework v2.0
Documentation
API Groups
Namespaces
Reference
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
y
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
w
y
Variables
k
n
r
u
w
Typedefs
c
d
h
m
n
o
p
s
t
u
v
Enumerations
a
b
c
d
f
h
i
l
o
p
r
s
t
u
v
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
~
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Typedefs
Enumerations
Enumerator
Related Symbols
File List
File Members
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
testpoint_control.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/testsuite/testpoint_control.hpp
4
/// @brief @copybrief testsuite::TestpointControl
5
6
#
include
<
functional
>
7
#
include
<
optional
>
8
#
include
<
string
>
9
#
include
<
unordered_set
>
10
11
#
include
<
userver
/
formats
/
json_fwd
.
hpp
>
12
#
include
<
userver
/
utils
/
function_ref
.
hpp
>
13
14
USERVER_NAMESPACE_BEGIN
15
16
namespace
testsuite
{
17
18
/// @brief Base testpoint client. Used to report TESTPOINT executions to
19
/// testsuite.
20
///
21
/// Do not use directly unless you are writing a component for handling
22
/// testpoints.
23
class
TestpointClientBase
{
24
public
:
25
using
Callback
=
utils
::
function_ref
<
void
(
const
formats
::
json
::
Value
&)>;
26
27
virtual
~TestpointClientBase();
28
29
/// @param name the name of the testpoint
30
/// @param json the request that will be passed to testsuite handler
31
/// @param callback will be invoked with the response if the testpoint has
32
/// been handled on the testsuite side successfully
33
virtual
void
Execute
(std::string_view name,
const
formats::
json
::Value& json,
34
Callback callback)
const
= 0;
35
36
protected
:
37
/// Must be called in destructors of derived classes
38
void
Unregister
()
noexcept
;
39
};
40
41
/// @brief Testpoint control interface for testsuite
42
///
43
/// All methods are coro-safe.
44
/// All testpoints are disabled by default.
45
/// Only 1 TestpointControl instance may exist globally at a time.
46
class
TestpointControl
final
{
47
public
:
48
TestpointControl();
49
~TestpointControl();
50
51
/// @brief Enable only the selected testpoints
52
void
SetEnabledNames
(std::unordered_set<std::string> names);
53
54
/// @brief Enable all defined testpoints
55
///
56
/// Testpoints, for which there is no registered handler on the testsuite
57
/// side, will still be skipped, at the cost of an extra request.
58
void
SetAllEnabled
();
59
60
/// @brief Makes a testpoint client globally accessible from testpoints. It
61
/// will unregister itself on destruction.
62
/// @note Only 1 client may be registered at a time.
63
void
SetClient
(
TestpointClientBase
& client);
64
};
65
66
}
// namespace testsuite
67
68
USERVER_NAMESPACE_END
Docs version:
v1.0
,
v2.0
,
trunk/develop
userver
testsuite
testpoint_control.hpp
Generated on Wed May 15 2024 22:22:53 for userver by
Doxygen
1.10.0