4 * An LBFactory class that always returns a single database object.
6 class LBFactory_Single
extends LBFactory
{
10 * @param $conf array An associative array with one member:
11 * - connection: The DatabaseBase connection object
13 function __construct( $conf ) {
14 $this->lb
= new LoadBalancer_Single( $conf );
18 * @param $wiki bool|string
20 * @return LoadBalancer_Single
22 function newMainLB( $wiki = false ) {
27 * @param $wiki bool|string
29 * @return LoadBalancer_Single
31 function getMainLB( $wiki = false ) {
37 * @param $wiki bool|string
39 * @return LoadBalancer_Single
41 function newExternalLB( $cluster, $wiki = false ) {
47 * @param $wiki bool|string
49 * @return LoadBalancer_Single
51 function &getExternalLB( $cluster, $wiki = false ) {
56 * @param $callback string|array
57 * @param $params array
59 function forEachLB( $callback, $params = array() ) {
60 call_user_func_array( $callback, array_merge( array( $this->lb
), $params ) );
65 * Helper class for LBFactory_Single.
67 class LoadBalancer_Single
extends LoadBalancer
{
75 * @param $params array
77 function __construct( $params ) {
78 $this->db
= $params['connection'];
79 parent
::__construct( array( 'servers' => array( array(
80 'type' => $this->db
->getType(),
81 'host' => $this->db
->getServer(),
82 'dbname' => $this->db
->getDBname(),
89 * @param $server string
90 * @param $dbNameOverride bool
92 * @return DatabaseBase
94 function reallyOpenConnection( $server, $dbNameOverride = false ) {