|
6 | 6 |
|
7 | 7 | class DatabaseComponent { |
8 | 8 | public: |
9 | | - |
| 9 | + |
10 | 10 | /** |
11 | | - * Create database client |
| 11 | + * Create database connection provider component |
12 | 12 | */ |
13 | | - OATPP_CREATE_COMPONENT(std::shared_ptr<UserDb>, userDb)([] { |
| 13 | + OATPP_CREATE_COMPONENT(std::shared_ptr<oatpp::provider::Provider<oatpp::sqlite::Connection>>, dbConnectionProvider)([] { |
14 | 14 |
|
15 | 15 | /* Create database-specific ConnectionProvider */ |
16 | 16 | auto connectionProvider = std::make_shared<oatpp::sqlite::ConnectionProvider>(DATABASE_FILE); |
17 | 17 |
|
18 | 18 | /* Create database-specific ConnectionPool */ |
19 | | - auto connectionPool = oatpp::sqlite::ConnectionPool::createShared(connectionProvider, |
20 | | - 10 /* max-connections */, |
21 | | - std::chrono::seconds(5) /* connection TTL */); |
| 19 | + return oatpp::sqlite::ConnectionPool::createShared(connectionProvider, |
| 20 | + 10 /* max-connections */, |
| 21 | + std::chrono::seconds(5) /* connection TTL */); |
| 22 | + |
| 23 | + }()); |
| 24 | + |
| 25 | + /** |
| 26 | + * Create database client |
| 27 | + */ |
| 28 | + OATPP_CREATE_COMPONENT(std::shared_ptr<UserDb>, userDb)([] { |
| 29 | + |
| 30 | + /* Get database ConnectionProvider component */ |
| 31 | + OATPP_COMPONENT(std::shared_ptr<oatpp::provider::Provider<oatpp::sqlite::Connection>>, connectionProvider); |
22 | 32 |
|
23 | 33 | /* Create database-specific Executor */ |
24 | | - auto executor = std::make_shared<oatpp::sqlite::Executor>(connectionPool); |
| 34 | + auto executor = std::make_shared<oatpp::sqlite::Executor>(connectionProvider); |
25 | 35 |
|
26 | 36 | /* Create MyClient database client */ |
27 | 37 | return std::make_shared<UserDb>(executor); |
28 | 38 |
|
29 | 39 | }()); |
30 | 40 |
|
31 | | - |
32 | 41 | }; |
33 | 42 |
|
34 | 43 | #endif //CRUD_DATABASECOMPONENT_HPP |
0 commit comments