userver
C++ Async Framework
Loading...
Searching...
No Matches
component.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/storages/mysql/component.hpp
4
/// @brief @copybrief storages::mysql::Component
5
6
#
include
<
memory
>
7
8
#
include
<
userver
/
components
/
component_base
.
hpp
>
9
#
include
<
userver
/
utils
/
statistics
/
entry
.
hpp
>
10
11
USERVER_NAMESPACE_BEGIN
12
13
namespace
clients::
dns
{
14
class
Component;
15
}
16
17
namespace
storages::
mysql
{
18
class
Cluster;
19
}
20
21
namespace
storages::
mysql
{
22
23
/// @ingroup userver_components
24
///
25
/// @brief MySQL/MariaDB client component
26
///
27
/// Provides access to a MySQL/MariaDB cluster.
28
///
29
/// ## Static configuration example:
30
///
31
/// @snippet samples/mysql_service/static_config.yaml MySQL service sample - static config
32
///
33
/// The component will lookup connection data in secdist.json via its name.
34
///
35
/// ## Secdist format:
36
///
37
/// Connection settings are described as a JSON object `mysql_settings`,
38
/// containing descriptions of MySQL/MariaDB clusters.
39
///
40
/// @snippet samples/mysql_service/tests/conftest.py Mysql service sample - secdist
41
///
42
/// **Important note**: the uMySQL driver does **NOT** perform an automatic
43
/// primary detection and always considers the first host in `hosts` list
44
/// an only primary node in the cluster.
45
///
46
/// ## Static options of storages::mysql::Component :
47
/// @include{doc} scripts/docs/en/components_schema/mysql/src/storages/mysql/component.md
48
///
49
/// Options inherited from @ref components::ComponentBase :
50
/// @include{doc} scripts/docs/en/components_schema/core/src/components/impl/component_base.md
51
class
Component
final
:
public
components
::
ComponentBase
{
52
public
:
53
/// Component constructor
54
Component
(
const
components
::ComponentConfig& config,
const
components
::ComponentContext& context);
55
56
/// Component destructor
57
~
Component
()
override
;
58
59
/// Cluster accessor
60
std::shared_ptr<storages::
mysql
::Cluster>
GetCluster
()
const
;
61
62
static
yaml_config
::Schema GetStaticConfigSchema();
63
64
private
:
65
clients::
dns
::Component& dns_;
66
67
const
std::shared_ptr<storages::
mysql
::Cluster> cluster_;
68
utils::statistics::Entry statistics_holder_;
69
};
70
71
}
// namespace storages::mysql
72
73
USERVER_NAMESPACE_END
userver
storages
mysql
component.hpp
Generated on Wed Jan 14 2026 20:03:00 for userver by
Doxygen
1.13.2