MediaWiki  REL1_19
LBFactory Class Reference

An interface for generating database load balancers. More...

Inheritance diagram for LBFactory:

List of all members.

Public Member Functions

 __construct ($conf)
 Construct a factory based on a configuration array (typically from $wgLBFactoryConf)
 callMethod ($loadBalancer, $methodName, $args)
 Private helper for forEachLBCallMethod.
 commitMasterChanges ()
 Commit changes on all master connections.
 forEachLB ($callback, $params=array())
 Execute a function for each tracked load balancer The callback is called with the load balancer as the first parameter, and $params passed as the subsequent parameters.
 forEachLBCallMethod ($methodName, $args=array())
 Call a method of each tracked load balancer.
getExternalLB ($cluster, $wiki=false)
 Get a cached (tracked) load balancer for external storage.
 getMainLB ($wiki=false)
 Get a cached (tracked) load balancer object.
 newExternalLB ($cluster, $wiki=false)
 Create a new load balancer for external storage.
 newMainLB ($wiki=false)
 Create a new load balancer object.
 shutdown ()
 Prepare all tracked load balancers for shutdown STUB.

Static Public Member Functions

static destroyInstance ()
 Shut down, close connections and destroy the cached instance.
static disableBackend ()
 Disables all access to the load balancer, will cause all database access to throw a DBAccessError.
static setInstance ($instance)
 Set the instance to be the given object.
static & singleton ()
 Get an LBFactory instance.

Static Public Attributes

static $instance

Detailed Description

An interface for generating database load balancers.

Definition at line 13 of file LBFactory.php.


Constructor & Destructor Documentation

LBFactory::__construct ( conf) [abstract]

Construct a factory based on a configuration array (typically from $wgLBFactoryConf)

Parameters:
$conf

Reimplemented in LBFactory_Fake, LBFactory_Simple, LBFactory_Multi, and LBFactory_Single.


Member Function Documentation

LBFactory::callMethod ( loadBalancer,
methodName,
args 
)

Private helper for forEachLBCallMethod.

Parameters:
$loadBalancer
$methodNamestring
$args

Definition at line 139 of file LBFactory.php.

Commit changes on all master connections.

Definition at line 146 of file LBFactory.php.

References forEachLBCallMethod().

Referenced by LBFactory_Simple\shutdown(), and LBFactory_Multi\shutdown().

Here is the call graph for this function:

Here is the caller graph for this function:

static LBFactory::destroyInstance ( ) [static]

Shut down, close connections and destroy the cached instance.

Definition at line 46 of file LBFactory.php.

Referenced by Maintenance\finalSetup(), and setInstance().

Here is the caller graph for this function:

static LBFactory::disableBackend ( ) [static]

Disables all access to the load balancer, will cause all database access to throw a DBAccessError.

Definition at line 24 of file LBFactory.php.

References $wgLBFactoryConf.

Referenced by Installer\__construct().

Here is the caller graph for this function:

LBFactory::forEachLB ( callback,
params = array() 
) [abstract]

Execute a function for each tracked load balancer The callback is called with the load balancer as the first parameter, and $params passed as the subsequent parameters.

Parameters:
$callbackstring|array
array$params

Reimplemented in LBFactory_Fake, LBFactory_Multi, LBFactory_Simple, and LBFactory_Single.

Referenced by forEachLBCallMethod().

Here is the caller graph for this function:

LBFactory::forEachLBCallMethod ( methodName,
args = array() 
)

Call a method of each tracked load balancer.

Parameters:
$methodNamestring
$argsarray

Definition at line 129 of file LBFactory.php.

References forEachLB().

Referenced by commitMasterChanges().

Here is the call graph for this function:

Here is the caller graph for this function:

& LBFactory::getExternalLB ( cluster,
wiki = false 
) [abstract]

Get a cached (tracked) load balancer for external storage.

Parameters:
$clusterString: external storage cluster, or false for core
$wikiString: wiki ID, or false for the current wiki
Returns:
LoadBalancer

Reimplemented in LBFactory_Fake, LBFactory_Simple, LBFactory_Multi, and LBFactory_Single.

LBFactory::getMainLB ( wiki = false) [abstract]

Get a cached (tracked) load balancer object.

Parameters:
$wikiString: wiki ID, or false for the current wiki
Returns:
LoadBalancer

Reimplemented in LBFactory_Fake, LBFactory_Simple, LBFactory_Multi, and LBFactory_Single.

LBFactory::newExternalLB ( cluster,
wiki = false 
) [abstract]

Create a new load balancer for external storage.

The resulting object will be untracked, not chronology-protected, and the caller is responsible for cleaning it up.

Parameters:
$clusterString: external storage cluster, or false for core
$wikiString: wiki ID, or false for the current wiki
Returns:
LoadBalancer

Reimplemented in LBFactory_Fake, LBFactory_Simple, LBFactory_Multi, and LBFactory_Single.

LBFactory::newMainLB ( wiki = false) [abstract]

Create a new load balancer object.

The resulting object will be untracked, not chronology-protected, and the caller is responsible for cleaning it up.

Parameters:
$wikiString: wiki ID, or false for the current wiki
Returns:
LoadBalancer

Reimplemented in LBFactory_Fake, LBFactory_Simple, LBFactory_Multi, and LBFactory_Single.

static LBFactory::setInstance ( instance) [static]

Set the instance to be the given object.

Parameters:
$instanceLBFactory

Definition at line 59 of file LBFactory.php.

References $instance, and destroyInstance().

Referenced by DatabaseInstaller\enableLB().

Here is the call graph for this function:

Here is the caller graph for this function:

Prepare all tracked load balancers for shutdown STUB.

Reimplemented in LBFactory_Multi, and LBFactory_Simple.

Definition at line 122 of file LBFactory.php.

static& LBFactory::singleton ( ) [static]

Get an LBFactory instance.

Returns:
LBFactory

Definition at line 34 of file LBFactory.php.

References $instance, and $wgLBFactoryConf.

Referenced by wfGetLBFactory().

Here is the caller graph for this function:


Member Data Documentation

LBFactory::$instance [static]

Definition at line 18 of file LBFactory.php.

Referenced by setInstance(), and singleton().


The documentation for this class was generated from the following file: