* SPDX-License-Identifier: AGPL-3.0-only
************************************/
/* crmv@185894 */
require_once('include/BaseClasses.php');
class SlaveHandler extends SDKExtendableUniqueClass {
private $debug = false;
private $active = false;
private $functions = array();
private $connection = array();
private $adb = null;
private $adb_cache = null;
function __construct() {
if ($this->debug) echo "SlaveHandler::__construct()
";
$VTEP = VTEProperties::getInstance();
$this->active = $VTEP->getProperty('performance.slave_handler');
$this->functions = $VTEP->getProperty('performance.slave_functions');
$this->connection = $VTEP->getProperty('performance.slave_connection');
}
function isActive(string $function) {
if ($this->debug) echo "isActive($function) ";
static $is_active = array();
if (!isset($is_active[$function])) {
$is_active[$function] = ($this->active && in_array($function,$this->functions));
if ($this->debug) { echo '| '; var_dump($is_active[$function]); echo '
'; }
}
return $is_active[$function];
}
function checkDatabaseConnection() {
if ($this->debug) echo "checkDatabaseConnection() ";
if (empty($this->adb)) {
if ($this->debug) echo "| load adb ";
$this->adb = new PearDatabase();
$this->adb->resetSettings($this->connection['db_type'],$this->connection['db_server'].$this->connection['db_port'],$this->connection['db_name'],$this->connection['db_username'],$this->connection['db_password']);
$this->adb->connect();
} elseif ($this->debug) echo "| adb loaded ";
if (empty($this->adb->database->_connectionID)) {
if ($this->debug) echo "| Connection Failed
";
return false;
} else {
if ($this->debug) echo "| Connected
";
return true;
}
}
function getPearDatabaseObject() {
return $this->adb;
}
function getCacheDbName() {
return $this->connection['db_name_cache'];
}
}