userver: userver/storages/sqlite/infra/statistics/statistics_counter.hpp Source File
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
statistics_counter.hpp
1#pragma once
2
3#include <userver/storages/sqlite/infra/statistics/statistics.hpp>
4#include <userver/utils/datetime.hpp>
5
6USERVER_NAMESPACE_BEGIN
7
8namespace storages::sqlite::infra::statistics {
9
10// TODO: make RAII algorithms
11
13public:
14 explicit QueryStatCounter(PoolQueriesStatistics& stats);
15
16 ~QueryStatCounter();
17
18 QueryStatCounter(const QueryStatCounter&) = delete;
19 QueryStatCounter& operator=(const QueryStatCounter&) = delete;
20
21 void AccountQueryExecute() noexcept;
22 void AccountQueryCompleted() noexcept;
23 void AccountQueryFailed() noexcept;
24
25private:
26 PoolQueriesStatistics& queries_stats_;
27 utils::datetime::SteadyClock::time_point exec_begin_time;
28};
29
31public:
32 explicit TransactionStatCounter(PoolTransactionsStatistics& stats);
33
34 ~TransactionStatCounter();
35
36 TransactionStatCounter(const TransactionStatCounter&) = delete;
37 TransactionStatCounter& operator=(const TransactionStatCounter&) = delete;
38
39 void AccountTransactionStart() noexcept;
40 void AccountTransactionCommit() noexcept;
41 void AccountTransactionRollback() noexcept;
42
43private:
44 PoolTransactionsStatistics& transactions_stats_;
45 utils::datetime::SteadyClock::time_point exec_begin_time;
46};
47
48} // namespace storages::sqlite::infra::statistics
49
50USERVER_NAMESPACE_END