|
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