userver: userver/storages/sqlite/infra/statistics/statistics_counter.hpp Source File
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
9USERVER_NAMESPACE_BEGIN
10
11namespace storages::sqlite::infra::statistics {
12
13// TODO: make RAII algorithms
14
16public:
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
28private:
29 PoolQueriesStatistics& queries_stats_;
30 utils::datetime::SteadyClock::time_point exec_begin_time_;
31};
32
34public:
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
46private:
47 PoolTransactionsStatistics& transactions_stats_;
48 utils::datetime::SteadyClock::time_point exec_begin_time_;
49};
50
51} // namespace storages::sqlite::infra::statistics
52
53USERVER_NAMESPACE_END