MediaWiki  REL1_22
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 28 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 155 of file LBFactory.php.

References array().

Commit changes on all master connections.

Definition at line 162 of file LBFactory.php.

References forEachLBCallMethod().

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

static LBFactory::destroyInstance ( ) [static]

Shut down, close connections and destroy the cached instance.

Definition at line 61 of file LBFactory.php.

Referenced by setInstance().

static LBFactory::disableBackend ( ) [static]

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

Definition at line 39 of file LBFactory.php.

References global.

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().

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

Call a method of each tracked load balancer.

Parameters:
$methodNamestring
$argsarray

Definition at line 145 of file LBFactory.php.

References array(), and forEachLB().

Referenced by commitMasterChanges().

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

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

Parameters:
string$clusterexternal storage cluster, or false for core
string$wikiwiki 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:
string$wikiwiki 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:
string$clusterexternal storage cluster, or false for core
string$wikiwiki 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:
string$wikiwiki 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 74 of file LBFactory.php.

References $instance, and destroyInstance().

Prepare all tracked load balancers for shutdown STUB.

Reimplemented in LBFactory_Multi, and LBFactory_Simple.

Definition at line 137 of file LBFactory.php.

static& LBFactory::singleton ( ) [static]

Get an LBFactory instance.

Returns:
LBFactory

Definition at line 49 of file LBFactory.php.

References $instance, and global.

Referenced by wfGetLBFactory().


Member Data Documentation

LBFactory::$instance [static]

Definition at line 33 of file LBFactory.php.

Referenced by setInstance(), and singleton().


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