From 45bf4e80bf80d4d00a1a3f62115649fe6cd84914 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Sat, 23 Jun 2012 11:26:46 -0700 Subject: [PATCH] [LockManager] Added support for a default lock manager. Change-Id: I730c8b078b9f3a0ad73b1b0887a8c991c9d81bde --- .../backend/lockmanager/LockManagerGroup.php | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/includes/filerepo/backend/lockmanager/LockManagerGroup.php b/includes/filerepo/backend/lockmanager/LockManagerGroup.php index b8308556c9..8c8c940a0a 100644 --- a/includes/filerepo/backend/lockmanager/LockManagerGroup.php +++ b/includes/filerepo/backend/lockmanager/LockManagerGroup.php @@ -23,13 +23,12 @@ /** * Class to handle file lock manager registration - * + * * @ingroup LockManager * @author Aaron Schulz * @since 1.19 */ class LockManagerGroup { - /** * @var LockManagerGroup */ @@ -61,7 +60,7 @@ class LockManagerGroup { /** * Register lock managers from the global variables - * + * * @return void */ protected function initFromGlobals() { @@ -115,4 +114,30 @@ class LockManagerGroup { } return $this->managers[$name]['instance']; } + + /** + * Get the default lock manager configured for the site. + * Returns NullLockManager if no lock manager could be found. + * + * @return LockManager + */ + public function getDefault() { + return isset( $this->managers['default'] ) + ? $this->get( 'default' ) + : new NullLockManager( array() ); + } + + /** + * Get the default lock manager configured for the site + * or at least some other effective configured lock manager. + * Throws an exception if no lock manager could be found. + * + * @return LockManager + * @throws MWException + */ + public function getAny() { + return isset( $this->managers['default'] ) + ? $this->get( 'default' ) + : $this->get( 'fsLockManager' ); + } } -- 2.20.1