From: Jan Schneider Date: Tue, 24 Aug 2010 21:02:44 +0000 (+0200) Subject: Driver -> Base X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=caff8e3692705faaf60dc9179f84cde4d7403af0;p=horde.git Driver -> Base --- diff --git a/framework/Lock/lib/Horde/Lock/Base.php b/framework/Lock/lib/Horde/Lock/Base.php new file mode 100644 index 000000000..b9b3e5acd --- /dev/null +++ b/framework/Lock/lib/Horde/Lock/Base.php @@ -0,0 +1,142 @@ + + * @category Horde + * @package Lock + */ +abstract class Horde_Lock_Base +{ + /** + * Driver parameters. + * + * @var array + */ + protected $_params; + + /** + * Logger. + * + * @var Horde_Log_Logger + */ + protected $_logger; + + /** + * Constructor. + * + * @param array $params Configuration parameters: + *
+     * 'logger' - (Horde_Log_Logger) A logger instance.
+     * 
+ */ + 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); + +} diff --git a/framework/Lock/lib/Horde/Lock/Driver.php b/framework/Lock/lib/Horde/Lock/Driver.php deleted file mode 100644 index b9b3e5acd..000000000 --- a/framework/Lock/lib/Horde/Lock/Driver.php +++ /dev/null @@ -1,142 +0,0 @@ - - * @category Horde - * @package Lock - */ -abstract class Horde_Lock_Base -{ - /** - * Driver parameters. - * - * @var array - */ - protected $_params; - - /** - * Logger. - * - * @var Horde_Log_Logger - */ - protected $_logger; - - /** - * Constructor. - * - * @param array $params Configuration parameters: - *
-     * 'logger' - (Horde_Log_Logger) A logger instance.
-     * 
- */ - 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); - -} diff --git a/framework/Lock/package.xml b/framework/Lock/package.xml index 7d476622d..0b3f464e9 100644 --- a/framework/Lock/package.xml +++ b/framework/Lock/package.xml @@ -33,7 +33,7 @@ http://pear.php.net/dtd/package-2.0.xsd"> - + @@ -80,7 +80,7 @@ http://pear.php.net/dtd/package-2.0.xsd"> - +