userver: userver/storages/sqlite/infra/strategy/read_write.hpp Source File
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
read_write.hpp
1#pragma once
2
3#include <userver/storages/sqlite/infra/strategy/pool_strategy.hpp>
4
5USERVER_NAMESPACE_BEGIN
6
7namespace storages::sqlite::infra::strategy {
8
9class ReadWriteStrategy final : public PoolStrategyBase {
10public:
11 ReadWriteStrategy(const settings::SQLiteSettings& settings, engine::TaskProcessor& blocking_task_processor);
12 ~ReadWriteStrategy() final;
13
14 void WriteStatistics(utils::statistics::Writer& writer) const final;
15
16private:
17 Pool& GetReadOnly() const final;
18 Pool& GetReadWrite() const final;
19
20 PoolPtr
21 InitializeReadOnlyPoolReference(settings::SQLiteSettings settings, engine::TaskProcessor& blocking_task_processor);
22
23 PoolPtr
24 InitializeReadWritePoolReference(settings::SQLiteSettings settings, engine::TaskProcessor& blocking_task_processor);
25
26 // Order is strong, write connection would be create first
27 PoolPtr write_connection_pool_;
28 PoolPtr read_connection_pool_;
29};
30
31} // namespace storages::sqlite::infra::strategy
32
33USERVER_NAMESPACE_END