Merge "Revert "Adding sanity check to Title::isRedirect().""
[lhc/web/wiklou.git] / includes / filerepo / backend / lockmanager / LSLockManager.php
index 45ccaae..7910285 100644 (file)
@@ -1,6 +1,29 @@
 <?php
+/**
+ * Version of LockManager based on using lock daemon servers.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup LockManager
+ */
 
 /**
+ * Manage locks using a lock daemon server.
+ *
  * Version of LockManager based on using lock daemon servers.
  * This is meant for multi-wiki systems that may share files.
  * All locks are non-blocking, which avoids deadlocks.
@@ -11,6 +34,7 @@
  * A majority of peers must agree for a lock to be acquired.
  *
  * @ingroup LockManager
+ * @since 1.19
  */
 class LSLockManager extends LockManager {
        /** @var Array Mapping of lock types to the type actually used */
@@ -33,6 +57,7 @@ class LSLockManager extends LockManager {
 
        /**
         * Construct a new instance from configuration.
+        * 
         * $config paramaters include:
         *     'lockServers'  : Associative array of server names to configuration.
         *                      Configuration is an associative array that includes:
@@ -46,6 +71,8 @@ class LSLockManager extends LockManager {
         * @param Array $config 
         */
        public function __construct( array $config ) {
+               parent::__construct( $config );
+
                $this->lockServers = $config['lockServers'];
                // Sanitize srvsByBucket config to prevent PHP errors
                $this->srvsByBucket = array_filter( $config['srvsByBucket'], 'is_array' );
@@ -64,6 +91,12 @@ class LSLockManager extends LockManager {
                $this->session = wfBaseConvert( sha1( $this->session ), 16, 36, 31 );
        }
 
+       /**
+        * @see LockManager::doLock()
+        * @param $paths array
+        * @param $type int
+        * @return Status
+        */
        protected function doLock( array $paths, $type ) {
                $status = Status::newGood();
 
@@ -113,6 +146,12 @@ class LSLockManager extends LockManager {
                return $status;
        }
 
+       /**
+        * @see LockManager::doUnlock()
+        * @param $paths array
+        * @param $type int
+        * @return Status
+        */
        protected function doUnlock( array $paths, $type ) {
                $status = Status::newGood();
 
@@ -171,7 +210,7 @@ class LSLockManager extends LockManager {
         * @param $action string
         * @param $type string
         * @param $values Array
-        * @return string|false
+        * @return string|bool
         */
        protected function sendCommand( $lockSrv, $action, $type, $values ) {
                $conn = $this->getConnection( $lockSrv );
@@ -276,7 +315,7 @@ class LSLockManager extends LockManager {
         */
        protected function getBucketFromKey( $path ) {
                $prefix = substr( sha1( $path ), 0, 2 ); // first 2 hex chars (8 bits)
-               return intval( base_convert( $prefix, 16, 10 ) ) % count( $this->dbsByBucket );
+               return intval( base_convert( $prefix, 16, 10 ) ) % count( $this->srvsByBucket );
        }
 
        /**