userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
statistics_counter.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/storages/sqlite/infra/statistics/statistics_counter.hpp
4
/// @brief RAII helpers to account SQLite pool query and transaction statistics
5
6
#
include
<
userver
/
storages
/
sqlite
/
infra
/
statistics
/
statistics
.
hpp
>
7
#
include
<
userver
/
utils
/
datetime
.
hpp
>
8
9
USERVER_NAMESPACE_BEGIN
10
11
namespace
storages::sqlite::infra::statistics {
12
13
// TODO: make RAII algorithms
14
15
class
QueryStatCounter
{
16
public
:
17
explicit
QueryStatCounter(PoolQueriesStatistics& stats);
18
19
~QueryStatCounter();
20
21
QueryStatCounter(
const
QueryStatCounter
&) =
delete
;
22
QueryStatCounter
& operator=(
const
QueryStatCounter
&) =
delete
;
23
24
void
AccountQueryExecute()
noexcept
;
25
void
AccountQueryCompleted()
noexcept
;
26
void
AccountQueryFailed()
noexcept
;
27
28
private
:
29
PoolQueriesStatistics& queries_stats_;
30
utils
::
datetime
::
SteadyClock
::time_point exec_begin_time_;
31
};
32
33
class
TransactionStatCounter
{
34
public
:
35
explicit
TransactionStatCounter(PoolTransactionsStatistics& stats);
36
37
~TransactionStatCounter();
38
39
TransactionStatCounter(
const
TransactionStatCounter
&) =
delete
;
40
TransactionStatCounter
& operator=(
const
TransactionStatCounter
&) =
delete
;
41
42
void
AccountTransactionStart()
noexcept
;
43
void
AccountTransactionCommit()
noexcept
;
44
void
AccountTransactionRollback()
noexcept
;
45
46
private
:
47
PoolTransactionsStatistics& transactions_stats_;
48
utils
::
datetime
::
SteadyClock
::time_point exec_begin_time_;
49
};
50
51
}
// namespace storages::sqlite::infra::statistics
52
53
USERVER_NAMESPACE_END
userver
storages
sqlite
infra
statistics
statistics_counter.hpp
Generated on
for userver by
Doxygen
1.17.0