#ifndef TEST_DATABASECOMPONENT_HPP #define TEST_DATABASECOMPONENT_HPP #include "db/UserDb.hpp" #include "db/MonitoringDb.hpp" class TestDatabaseComponent { public: /** * Create database connection provider component */ OATPP_CREATE_COMPONENT(std::shared_ptr>, dbConnectionProvider)([] { /* Create database-specific ConnectionProvider */ auto connectionProvider = std::make_shared(TESTDATABASE_FILE); /* Create database-specific ConnectionPool */ return oatpp::sqlite::ConnectionPool::createShared(connectionProvider, 10 /* max-connections */, std::chrono::seconds(5) /* connection TTL */); }()); /** * Create database client */ OATPP_CREATE_COMPONENT(std::shared_ptr, userDb)([] { /* Get database ConnectionProvider component */ OATPP_COMPONENT(std::shared_ptr>, connectionProvider); /* Create database-specific Executor */ auto executor = std::make_shared(connectionProvider); /* Create MyClient database client */ return std::make_shared(executor); }()); /** * Create database client */ OATPP_CREATE_COMPONENT(std::shared_ptr, monitoringDb)([] { /* Get database ConnectionProvider component */ OATPP_COMPONENT(std::shared_ptr>, connectionProvider); /* Create database-specific Executor */ auto executor = std::make_shared(connectionProvider); /* Create MyClient database client */ return std::make_shared(executor); }()); }; #endif //TEST_DATABASECOMPONENT_HPP