queryTimeoutManager = new ABJ_404_Solution_DatabaseQueryTimeoutManager($core, $logger); $this->resultHarvester = new ABJ_404_Solution_DatabaseWpdbResultHarvester(); $this->queryDiagnostics = new ABJ_404_Solution_DatabaseQueryDiagnostics($logger); $this->queryRecoveryPolicy = new ABJ_404_Solution_DatabaseQueryRecoveryPolicy( $core, $logger, $this->resultHarvester, $this->queryDiagnostics ); $this->queryExecutor = new ABJ_404_Solution_DatabaseQueryExecutor( $core, $logger, $this->resultHarvester, $this->queryDiagnostics, $this->queryRecoveryPolicy ); $this->transactionExecutor = new ABJ_404_Solution_DatabaseTransactionExecutor($core, $logger); } /** @return ABJ_404_Solution_DatabaseQueryTimeoutManager */ public function queryTimeoutManager(): ABJ_404_Solution_DatabaseQueryTimeoutManager { return $this->queryTimeoutManager; } /** @return ABJ_404_Solution_DatabaseWpdbResultHarvester */ public function resultHarvester(): ABJ_404_Solution_DatabaseWpdbResultHarvester { return $this->resultHarvester; } /** @return ABJ_404_Solution_DatabaseQueryDiagnostics */ public function queryDiagnostics(): ABJ_404_Solution_DatabaseQueryDiagnostics { return $this->queryDiagnostics; } /** @return ABJ_404_Solution_DatabaseQueryRecoveryPolicy */ public function queryRecoveryPolicy(): ABJ_404_Solution_DatabaseQueryRecoveryPolicy { return $this->queryRecoveryPolicy; } /** @return ABJ_404_Solution_DatabaseQueryExecutor */ public function queryExecutor(): ABJ_404_Solution_DatabaseQueryExecutor { return $this->queryExecutor; } /** @return ABJ_404_Solution_DatabaseTransactionExecutor */ public function transactionExecutor(): ABJ_404_Solution_DatabaseTransactionExecutor { return $this->transactionExecutor; } }