userver: userver/storages/sqlite/infra/strategy/pool_strategy.hpp Source File
Loading...
Searching...
No Matches
pool_strategy.hpp
1#pragma once
2
3#include <memory>
4
5#include <userver/engine/async.hpp>
6#include <userver/engine/task/task_processor_fwd.hpp>
7#include <userver/utils/statistics/writer.hpp>
8
9#include <userver/storages/sqlite/operation_types.hpp>
10#include <userver/storages/sqlite/options.hpp>
11#include <userver/storages/sqlite/sqlite_fwd.hpp>
12
13USERVER_NAMESPACE_BEGIN
14
15namespace storages::sqlite::infra::strategy {
16
18public:
19 virtual ~PoolStrategyBase();
20
21 static std::unique_ptr<PoolStrategyBase> Create(
22 const settings::SQLiteSettings& settings,
23 engine::TaskProcessor& blocking_task_processor
24 );
25
26 Pool& SelectPool(OperationType op_type) const;
27
28 virtual void WriteStatistics(utils::statistics::Writer& writer) const = 0;
29
30protected:
31 virtual Pool& GetReadOnly() const = 0;
32 virtual Pool& GetReadWrite() const = 0;
33};
34
35} // namespace storages::sqlite::infra::strategy
36
37USERVER_NAMESPACE_END