userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
pool.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/storages/sqlite/infra/pool.hpp
4
/// @brief @copybrief storages::sqlite::infra::Pool
5
6
#
include
<
memory
>
7
8
#
include
<
userver
/
clients
/
dns
/
resolver_fwd
.
hpp
>
9
#
include
<
userver
/
drivers
/
impl
/
connection_pool_base
.
hpp
>
10
#
include
<
userver
/
engine
/
deadline
.
hpp
>
11
#
include
<
userver
/
utils
/
datetime
/
wall_coarse_clock
.
hpp
>
12
#
include
<
userver
/
utils
/
periodic_task
.
hpp
>
13
14
#
include
<
userver
/
storages
/
sqlite
/
impl
/
connection
.
hpp
>
15
#
include
<
userver
/
storages
/
sqlite
/
infra
/
connection_ptr
.
hpp
>
16
#
include
<
userver
/
storages
/
sqlite
/
infra
/
statistics
/
statistics
.
hpp
>
17
#
include
<
userver
/
storages
/
sqlite
/
options
.
hpp
>
18
#
include
<
userver
/
storages
/
sqlite
/
sqlite_fwd
.
hpp
>
19
20
USERVER_NAMESPACE_BEGIN
21
22
namespace
storages::sqlite::infra {
23
24
/// @brief SQLite connection pool
25
class
Pool
final
:
public
drivers
::impl::ConnectionPoolBase<impl::Connection, Pool> {
26
public
:
27
static
std::shared_ptr<Pool> Create(
28
const
settings::
SQLiteSettings
& settings,
29
engine::TaskProcessor& blocking_task_processor
30
);
31
~Pool();
32
33
ConnectionPtr
Acquire();
34
void
Release(ConnectionUniquePtr connection);
35
36
Pool(
const
settings::
SQLiteSettings
& settings, engine::TaskProcessor& blocking_task_processor);
37
38
statistics::PoolStatistics& GetStatistics();
39
40
private
:
41
friend
class
drivers
::impl::ConnectionPoolBase<impl::Connection, Pool>;
42
43
ConnectionUniquePtr DoCreateConnection(engine::Deadline deadline);
44
45
void
AccountConnectionAcquired();
46
void
AccountConnectionReleased();
47
void
AccountConnectionCreated();
48
void
AccountConnectionDestroyed()
noexcept
;
49
void
AccountOverload();
50
51
engine::TaskProcessor& blocking_task_processor_;
52
53
const
settings::
SQLiteSettings
settings_;
54
55
statistics::PoolStatistics stats_{};
56
};
57
58
}
// namespace storages::sqlite::infra
59
60
USERVER_NAMESPACE_END
userver
storages
sqlite
infra
pool.hpp
Generated on
for userver by
Doxygen
1.17.0