/usr/share/php/Horde/Lock.php is in php-horde-lock 2.1.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | <?php
/**
* The Horde_Lock class provides an API to create, store, check and expire locks
* based on a given resource URI.
*
* Copyright 2008-2013 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you did
* not receive this file, see http://www.horde.org/licenses/lgpl21.
*
* @author Ben Klang <bklang@horde.org>
* @category Horde
* @package Lock
*/
abstract class Horde_Lock
{
/* Class constants. */
const TYPE_EXCLUSIVE = 1;
const TYPE_SHARED = 2;
const PERMANENT = -1;
/**
* Driver parameters.
*
* @var array
*/
protected $_params;
/**
* Logger.
*
* @var Horde_Log_Logger
*/
protected $_logger;
/**
* Constructor.
*
* @param array $params Configuration parameters:
* <pre>
* 'logger' - (Horde_Log_Logger) A logger instance.
* </pre>
*/
public function __construct($params = array())
{
if (!empty($params['logger'])) {
$this->_logger = $params['logger'];
unset($params['logger']);
}
$this->_params = $params;
}
/**
* Return an array of information about the requested lock.
*
* @param string $lockid Lock ID to look up.
*
* @return array Lock information.
* @throws Horde_Lock_Exception
*/
abstract public function getLockInfo($lockid);
/**
* Return a list of valid locks with the option to limit the results
* by principal, scope and/or type.
*
* @param string $scope The scope of the lock. Typically the name of
* the application requesting the lock or some
* other identifier used to group locks together.
* @param string $principal Principal for which to check for locks
* @param integer $type Only return locks of the given type.
* Defaults to null, or all locks
*
* @return array Array of locks with the ID as the key and the lock details
* as the value. If there are no current locks this will
* return an empty array.
* @throws Horde_Lock_Exception
*/
abstract public function getLocks($scope = null, $principal = null,
$type = null);
/**
* Extend the valid lifetime of a valid lock to now + $extend.
*
* @param string $lockid Lock ID to reset. Must be a valid, non-expired
* lock.
* @param integer $extend Extend lock this many seconds from now.
*
* @return boolean Returns true on success.
* @throws Horde_Lock_Exception
*/
abstract public function resetLock($lockid, $extend);
/**
* Sets a lock on the requested principal and returns the generated lock
* ID. NOTE: No security checks are done in the Horde_Lock API. It is
* expected that the calling application has done all necessary security
* checks before requesting a lock be granted.
*
* @param string $requestor User ID of the lock requestor.
* @param string $scope The scope of the lock. Typically the name of
* the application requesting the lock or some
* other identifier used to group locks
* together.
* @param string $principal A principal on which a lock should be
* granted. The format can be any string but is
* suggested to be in URI form.
* @param integer $lifetime Time (in seconds) for which the lock will be
* considered valid.
* @param string exclusive One of Horde_Lock::TYPE_SHARED or
* Horde_Lock::TYPE_EXCLUSIVE.
* - An exclusive lock will be enforced strictly
* and must be interpreted to mean that the
* resource can not be modified. Only one
* exclusive lock per principal is allowed.
* - A shared lock is one that notifies other
* potential lock requestors that the resource
* is in use. This lock can be overridden
* (cleared or replaced with a subsequent
* call to setLock()) by other users. Multiple
* users may request (and will be granted) a
* shared lock on a given principal. All locks
* will be considered valid until they are
* cleared or expire.
*
* @return mixed A string lock ID.
* @throws Horde_Lock_Exception
*/
abstract public function setLock($requestor, $scope, $principal,
$lifetime = 1,
$exclusive = Horde_Lock::TYPE_SHARED);
/**
* Removes a lock given the lock ID.
* NOTE: No security checks are done in the Horde_Lock API. It is
* expected that the calling application has done all necessary security
* checks before requesting a lock be cleared.
*
* @param string $lockid The lock ID as generated by a previous call
* to setLock()
*
* @return boolean Returns true on success.
* @throws Horde_Lock_Exception
*/
abstract public function clearLock($lockid);
}
|