@@ -166,52 +166,6 @@ void APool::pushDatabaseBack(QStringView connectionName, ADriver *driver)
166166 }
167167}
168168
169- ADatabase APool::database (QStringView poolName)
170- {
171- ADatabase db;
172- auto it = m_connectionPool.find (poolName);
173- if (it != m_connectionPool.end ()) {
174- APoolInternal &iPool = it.value ();
175- if (iPool.pool .empty ()) {
176- if (iPool.maximuConnections && iPool.connectionCount >= iPool.maximuConnections ) {
177- qCritical (ASQL_POOL ) << " Maximum number of connections reached" << poolName
178- << iPool.connectionCount << iPool.connectionQueue .size ();
179- } else {
180- ++iPool.connectionCount ;
181- auto driver = iPool.driverFactory ->createRawDriver ();
182- qDebug (ASQL_POOL ) << " Creating a database connection for pool" << poolName
183- << driver;
184- db.d = std::shared_ptr<ADriver>(driver, [poolName = iPool.name ](ADriver *driver) {
185- pushDatabaseBack (poolName, driver);
186- });
187- }
188- } else {
189- qDebug (ASQL_POOL ) << " Reusing a database connection from pool" << poolName;
190- ADriver *driver = iPool.pool .takeLast ();
191- db.d = std::shared_ptr<ADriver>(driver, [poolName = iPool.name ](ADriver *driver) {
192- pushDatabaseBack (poolName, driver);
193- });
194- }
195-
196- if (db.isOpen ()) {
197- if (iPool.reuseCb ) {
198- iPool.reuseCb (db);
199- }
200- } else {
201- db.open (nullptr ,
202- [setupCb = iPool.setupCb , db](bool isOpen, const QString &errorString) {
203- if (isOpen && setupCb) {
204- setupCb (db);
205- }
206- });
207- }
208- } else {
209- qCritical (ASQL_POOL ) << " Database pool NOT FOUND" << poolName;
210- db.open ();
211- }
212- return db;
213- }
214-
215169int APool::currentConnections (QStringView poolName)
216170{
217171 auto it = m_connectionPool.find (poolName);
@@ -221,7 +175,7 @@ int APool::currentConnections(QStringView poolName)
221175 return 0 ;
222176}
223177
224- void APool::database (QObject *receiver, ADatabaseFn cb, QStringView poolName)
178+ void APool::databaseCallback (QObject *receiver, ADatabaseFn cb, QStringView poolName)
225179{
226180 ADatabase db;
227181 auto it = m_connectionPool.find (poolName);
@@ -278,10 +232,10 @@ void APool::database(QObject *receiver, ADatabaseFn cb, QStringView poolName)
278232 }
279233}
280234
281- AExpectedDatabase APool::coDatabase (QObject *receiver, QStringView poolName)
235+ AExpectedDatabase APool::database (QObject *receiver, QStringView poolName)
282236{
283237 AExpectedDatabase coro (receiver);
284- database (receiver, ADatabaseFn{std::weak_ptr<ACoroDatabase>{coro.m_data }}, poolName);
238+ databaseCallback (receiver, ADatabaseFn{std::weak_ptr<ACoroDatabase>{coro.m_data }}, poolName);
285239 return coro;
286240}
287241
@@ -345,7 +299,7 @@ AExpectedResult APool::exec(QStringView query, QObject *receiver, QStringView po
345299 auto ref = coro.ref ();
346300
347301 [](ACoroDataRef ref, auto query, QObject *receiver, QStringView poolName) -> ACoroTerminator {
348- auto db = co_await coDatabase (receiver, poolName);
302+ auto db = co_await database (receiver, poolName);
349303 if (db) {
350304 auto result = co_await db->exec (query, receiver);
351305 if (result) {
@@ -370,7 +324,7 @@ AExpectedResult APool::exec(QUtf8StringView query, QObject *receiver, QStringVie
370324 auto ref = coro.ref ();
371325
372326 [](ACoroDataRef ref, auto query, QObject *receiver, QStringView poolName) -> ACoroTerminator {
373- auto db = co_await coDatabase (receiver, poolName);
327+ auto db = co_await database (receiver, poolName);
374328 if (db) {
375329 auto result = co_await db->exec (query, receiver);
376330 if (result) {
@@ -395,7 +349,7 @@ AExpectedMultiResult APool::execMulti(QStringView query, QObject *receiver, QStr
395349 auto ref = coro.ref ();
396350
397351 [](ACoroDataRef ref, auto query, QObject *receiver, QStringView poolName) -> ACoroTerminator {
398- auto db = co_await coDatabase (receiver, poolName);
352+ auto db = co_await database (receiver, poolName);
399353 if (db) {
400354 auto awaiter = db->execMulti (query, receiver);
401355
@@ -428,7 +382,7 @@ AExpectedMultiResult
428382 auto ref = coro.ref ();
429383
430384 [](ACoroDataRef ref, auto query, QObject *receiver, QStringView poolName) -> ACoroTerminator {
431- auto db = co_await coDatabase (receiver, poolName);
385+ auto db = co_await database (receiver, poolName);
432386 if (db) {
433387 auto awaiter = db->execMulti (query, receiver);
434388
@@ -460,7 +414,7 @@ AExpectedResult APool::exec(const APreparedQuery &query, QObject *receiver, QStr
460414 auto ref = coro.ref ();
461415
462416 [](ACoroDataRef ref, auto query, QObject *receiver, QStringView poolName) -> ACoroTerminator {
463- auto db = co_await coDatabase (receiver, poolName);
417+ auto db = co_await database (receiver, poolName);
464418 if (db) {
465419 auto result = co_await db->exec (query, receiver);
466420 if (result) {
@@ -489,7 +443,7 @@ AExpectedResult APool::exec(QStringView query,
489443
490444 [](ACoroDataRef ref, auto query, QVariantList params, QObject *receiver, QStringView poolName)
491445 -> ACoroTerminator {
492- auto db = co_await coDatabase (receiver, poolName);
446+ auto db = co_await database (receiver, poolName);
493447 if (db) {
494448 auto result = co_await db->exec (query, params, receiver);
495449
@@ -519,7 +473,7 @@ AExpectedResult APool::exec(QUtf8StringView query,
519473
520474 [](ACoroDataRef ref, auto query, QVariantList params, QObject *receiver, QStringView poolName)
521475 -> ACoroTerminator {
522- auto db = co_await coDatabase (receiver, poolName);
476+ auto db = co_await database (receiver, poolName);
523477 if (db) {
524478 auto result = co_await db->exec (query, params, receiver);
525479 if (result) {
@@ -548,7 +502,7 @@ AExpectedResult APool::exec(const APreparedQuery &query,
548502
549503 [](ACoroDataRef ref, auto query, QVariantList params, QObject *receiver, QStringView poolName)
550504 -> ACoroTerminator {
551- auto db = co_await coDatabase (receiver, poolName);
505+ auto db = co_await database (receiver, poolName);
552506 if (db) {
553507 auto result = co_await db->exec (query, params, receiver);
554508 if (result) {
@@ -570,7 +524,7 @@ AExpectedTransaction APool::begin(QObject *receiver, QStringView poolName)
570524{
571525 AExpectedTransaction coro (receiver);
572526 [](auto chainData, QObject *receiver, QStringView poolName) -> ACoroTerminator {
573- auto db = co_await coDatabase (receiver, poolName);
527+ auto db = co_await database (receiver, poolName);
574528 if (db) {
575529 auto result = co_await db->begin (receiver);
576530 if (result) {
0 commit comments