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