aboutsummaryrefslogtreecommitdiffstats
path: root/includes/filerepo/backend
diff options
context:
space:
mode:
authorAaron Schulz <aschulz@wikimedia.org>2012-06-23 11:26:46 -0700
committerAaron Schulz <aschulz@wikimedia.org>2012-06-23 11:53:36 -0700
commit45bf4e80bf80d4d00a1a3f62115649fe6cd84914 (patch)
tree92c07a7f191087ed0821938056ad0a176c9837e4 /includes/filerepo/backend
parent8f1ea9d90732d3b2166bdddfe89ce146aa06612f (diff)
downloadmediawikicore-45bf4e80bf80d4d00a1a3f62115649fe6cd84914.tar.gz
mediawikicore-45bf4e80bf80d4d00a1a3f62115649fe6cd84914.zip
[LockManager] Added support for a default lock manager.
Change-Id: I730c8b078b9f3a0ad73b1b0887a8c991c9d81bde
Diffstat (limited to 'includes/filerepo/backend')
-rw-r--r--includes/filerepo/backend/lockmanager/LockManagerGroup.php31
1 files changed, 28 insertions, 3 deletions
diff --git a/includes/filerepo/backend/lockmanager/LockManagerGroup.php b/includes/filerepo/backend/lockmanager/LockManagerGroup.php
index b8308556c954..8c8c940a0a97 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' );
+ }
}