userver: userver/storages/sqlite/infra/strategy/pool_strategy.hpp Source File
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
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>
22 Create(const settings::SQLiteSettings& settings, engine::TaskProcessor& blocking_task_processor);
23
24 Pool& SelectPool(OperationType op_type) const;
25
26 virtual void WriteStatistics(utils::statistics::Writer& writer) const = 0;
27
28protected:
29 virtual Pool& GetReadOnly() const = 0;
30 virtual Pool& GetReadWrite() const = 0;
31};
32
33} // namespace storages::sqlite::infra::strategy
34
35USERVER_NAMESPACE_END