@@ -8,20 +8,30 @@ class TestDatabaseComponent {
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>(TESTDATABASE_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);
0 commit comments