userver: userver/storages/sqlite/infra/strategy/read_write.hpp Source File
Loading...
Searching...
No Matches
read_write.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/storages/sqlite/infra/strategy/read_write.hpp
4/// @brief @copybrief storages::sqlite::infra::strategy::ReadWriteStrategy
5
6#include <userver/storages/sqlite/infra/strategy/pool_strategy.hpp>
7
8USERVER_NAMESPACE_BEGIN
9
10namespace storages::sqlite::infra::strategy {
11
12/// @brief SQLite pool strategy: separate read and read-write connection pools
13class ReadWriteStrategy final : public PoolStrategyBase {
14public:
15 ReadWriteStrategy(const settings::SQLiteSettings& settings, engine::TaskProcessor& blocking_task_processor);
16 ~ReadWriteStrategy() final;
17
18 void WriteStatistics(utils::statistics::Writer& writer) const final;
19
20private:
21 Pool& GetReadOnly() const final;
22 Pool& GetReadWrite() const final;
23
24 PoolPtr InitializeReadOnlyPoolReference(
25 settings::SQLiteSettings settings,
26 engine::TaskProcessor& blocking_task_processor
27 );
28
29 PoolPtr InitializeReadWritePoolReference(
30 settings::SQLiteSettings settings,
31 engine::TaskProcessor& blocking_task_processor
32 );
33
34 // Order is strong, write connection would be create first
35 PoolPtr write_connection_pool_;
36 PoolPtr read_connection_pool_;
37};
38
39} // namespace storages::sqlite::infra::strategy
40
41USERVER_NAMESPACE_END